{"openapi":"3.1.0","info":{"title":"Weavers customer API","version":"1.0.0","description":"Customer-facing HTTP operations. Examples use fictional data and require the stated account/resource prerequisites. Deployment-enabled capabilities and account entitlements apply. MCP and operational interfaces have separate references."},"servers":[{"url":"https://api.weavers.app"}],"paths":{"/api/articles":{"get":{"operationId":"get-articles","tags":["articles"],"summary":"GET /api/articles","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/articles","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"beforePublishedAt","in":"query","required":false,"schema":{"type":"string"}},{"name":"beforeId","in":"query","required":false,"schema":{"type":"string"}},{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"slug","in":"query","required":false,"schema":{"type":"string"}},{"name":"includePremiumPreview","in":"query","required":false,"schema":{"type":"string"}},{"name":"includePresentation","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_daf417c46ab6"},"example":{"articles":[],"nextCursor":null}}}},"304":{"description":"Cached representation is still current; no body."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/articles'"}]}},"/api/articles/{id}":{"get":{"operationId":"get-articles-id","tags":["articles"],"summary":"GET /api/articles/:id","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/articles/1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_ab11fd79f47a"},"example":{"article":{"id":"1","symbol":"AAPL","strategy":null,"title":"Example research","summary":"example","url":"example","sourceName":"Example research","publishedAt":"2025-01-01T00:00:00.000Z","readingTime":"example","coverImage":"example","tags":[],"reactions":1,"kind":"signal","outboxId":1,"channelId":1,"timeframe":"example","windowSize":1,"direction":null,"bodyKey":null,"bodyFormat":"example","body":"example","updatedAt":"2025-01-01T00:00:00.000Z","accessTier":"free","isUnlocked":false,"unlockCost":null,"lockedReason":null}}}}},"304":{"description":"Cached representation is still current; no body."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_8c62f7aa6cd0"},{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"isUnlocked":false,"unlockCost":null,"lockedReason":null,"error":"example","accessTier":"premium"}}}},"402":{"description":"Credits or entitlement required.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_40a5b77ec00e"},{"$ref":"#/components/schemas/Response___object_9c63d0de4319"}]},"example":{"isUnlocked":false,"unlockCost":null,"lockedReason":null,"error":"example","entitlementKey":"premium_article_card","price":15,"accessTier":"premium"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/articles/1'"}]}},"/api/articles/{id}/unlock":{"post":{"operationId":"post-articles-id-unlock","tags":["articles"],"summary":"POST /api/articles/:id/unlock","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/articles/1/unlock","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_3fe79cb805b5"},{"$ref":"#/components/schemas/Response___object_9364c72bea2b"},{"$ref":"#/components/schemas/Response___object_9ac0084460ba"}]},"example":{"status":"example","articleId":"1","accessTier":"free","isUnlocked":false,"unlockCost":null,"lockedReason":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"402":{"description":"Credits or entitlement required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_370ba8325685"},"example":{"error":"example","missing":1,"balance":1,"wallets":{"earned":1,"promo":1,"purchased":1,"total":1},"unlockCost":15}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/articles/1/unlock' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/articles/{id}/chart":{"get":{"operationId":"get-articles-id-chart","tags":["articles"],"summary":"GET /api/articles/:id/chart","description":"The successful response contains stored image/file bytes. Its Content-Type identifies the representation. Check headers.txt before opening response.bin; an unsuccessful response can contain JSON instead.","x-access":"anonymous","x-notes":["The successful response contains stored image/file bytes. Its Content-Type identifies the representation. Check headers.txt before opening response.bin; an unsuccessful response can contain JSON instead."],"x-example-url":"https://api.weavers.app/api/articles/1/chart","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}},"304":{"description":"Cached representation is still current; no body."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --dump-header headers.txt --output response.bin \\\n  --request GET \\\n  'https://api.weavers.app/api/articles/1/chart'"}]}},"/api/articles/{id}/replay":{"get":{"operationId":"get-articles-id-replay","tags":["articles"],"summary":"GET /api/articles/:id/replay","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/articles/1/replay","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"view","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_3736ae30e6f4"},{"$ref":"#/components/schemas/Response___object_b0fdb236c283"}]},"example":{"growth":{"articleId":"1","boundaryTime":"example","baselineClose":1,"finalClose":1,"growthPercent":1,"barsRequired":1,"barsAvailable":1,"updatedAt":"2025-01-01T00:00:00.000Z"}}}}},"304":{"description":"Cached representation is still current; no body."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_8c62f7aa6cd0"},{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"isUnlocked":false,"unlockCost":null,"lockedReason":null,"error":"example","accessTier":"premium"}}}},"402":{"description":"Credits or entitlement required.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_40a5b77ec00e"},{"$ref":"#/components/schemas/Response___object_9c63d0de4319"}]},"example":{"isUnlocked":false,"unlockCost":null,"lockedReason":null,"error":"example","entitlementKey":"premium_article_card","price":15,"accessTier":"premium"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/articles/1/replay'"}]}},"/api/articles/{id}/share":{"post":{"operationId":"post-articles-id-share","tags":["articles"],"summary":"POST /api/articles/:id/share","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/articles/1/share","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string"}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f3777587c050"},"example":{"shared":false,"type":"example","coins":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/articles/1/share' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/articles/{id}/like":{"post":{"operationId":"post-articles-id-like","tags":["articles"],"summary":"POST /api/articles/:id/like","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/articles/1/like","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f4dee90babe6"},"example":{"liked":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/articles/1/like' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]},"delete":{"operationId":"delete-articles-id-like","tags":["articles"],"summary":"DELETE /api/articles/:id/like","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/articles/1/like","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f4dee90babe6"},"example":{"liked":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request DELETE \\\n  'https://api.weavers.app/api/articles/1/like' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/articles/{id}/save":{"post":{"operationId":"post-articles-id-save","tags":["articles"],"summary":"POST /api/articles/:id/save","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/articles/1/save","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a72ab11aee14"},"example":{"saved":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/articles/1/save' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]},"delete":{"operationId":"delete-articles-id-save","tags":["articles"],"summary":"DELETE /api/articles/:id/save","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/articles/1/save","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a72ab11aee14"},"example":{"saved":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request DELETE \\\n  'https://api.weavers.app/api/articles/1/save' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/articles/{id}/interactions":{"get":{"operationId":"get-articles-id-interactions","tags":["articles"],"summary":"GET /api/articles/:id/interactions","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/articles/1/interactions","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ArticleInteractions_2613f1b94fb6"},"example":{"likes":1,"shares":1,"liked":false,"saved":false,"shared":false,"copied":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/articles/1/interactions'"}]}},"/api/articles/{id}/likes":{"get":{"operationId":"get-articles-id-likes","tags":["articles"],"summary":"GET /api/articles/:id/likes","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/articles/1/likes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_c872820c0bce"},"example":{"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/articles/1/likes'"}]}},"/api/articles/{id}/comments":{"get":{"operationId":"get-articles-id-comments","tags":["articles"],"summary":"GET /api/articles/:id/comments","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/articles/1/comments","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Response_ArticleCommentDTO_43156981d258"}},"example":[]}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/articles/1/comments'"}]},"post":{"operationId":"post-articles-id-comments","tags":["articles"],"summary":"POST /api/articles/:id/comments","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/articles/1/comments","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"parentId":{"type":["string","number"]}},"required":["text"],"additionalProperties":false},"example":{"text":"Explain the data used in this research."}}}},"responses":{"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ArticleCommentDTO_43156981d258"},"example":{"id":1,"articleId":"1","userId":1,"displayName":"Example research","text":"Explain the data used in this research.","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":null,"deletedAt":null,"parentId":null,"isOwner":false,"isDeleted":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/articles/1/comments' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/articles/{id}/comments/{commentId}":{"patch":{"operationId":"patch-articles-id-comments-commentId","tags":["articles"],"summary":"PATCH /api/articles/:id/comments/:commentId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/articles/1/comments/1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false},"example":{"text":"Explain the data used in this research."}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ArticleCommentDTO_43156981d258"},"example":{"id":1,"articleId":"1","userId":1,"displayName":"Example research","text":"Explain the data used in this research.","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":null,"deletedAt":null,"parentId":null,"isOwner":false,"isDeleted":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PATCH \\\n  'https://api.weavers.app/api/articles/1/comments/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]},"delete":{"operationId":"delete-articles-id-comments-commentId","tags":["articles"],"summary":"DELETE /api/articles/:id/comments/:commentId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/articles/1/comments/1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ArticleCommentDTO_43156981d258"},"example":{"id":1,"articleId":"1","userId":1,"displayName":"Example research","text":"Explain the data used in this research.","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":null,"deletedAt":null,"parentId":null,"isOwner":false,"isDeleted":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"},"example":{"error":"example"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_2ba29b3338ac"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request DELETE \\\n  'https://api.weavers.app/api/articles/1/comments/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/auth/signup":{"post":{"operationId":"post-auth-signup","tags":["account"],"summary":"POST /api/auth/signup","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/signup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"},"referralCode":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["name","email","password"],"additionalProperties":false},"example":{"name":"Example developer","email":"developer@example.com","password":"EXAMPLE-only-Passphrase-42!"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_8344b1d24b1b"},{"$ref":"#/components/schemas/Response___type_3235e8d0be36"}]},"example":{"message":"Explain the data used in this research.","existingUser":false,"verified":false}}}},"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_bc1c08887334"},"example":{"message":"Explain the data used in this research.","user":{"id":1,"name":"Example research","email":"developer@example.com"},"requiresVerification":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_48298f881db4"},{"$ref":"#/components/schemas/Response___object_14a73d402595"},{"$ref":"#/components/schemas/Response___object_fa13e14a114b"}]},"example":{"error":"example","message":"Explain the data used in this research.","existingUser":false,"authProvider":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/auth/signup' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/auth/verify":{"get":{"operationId":"get-auth-verify","tags":["account"],"summary":"GET /api/auth/verify","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/verify?token=REPLACE_WITH_YOUR_FLOW_VALUE","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_4dbf449010f0"},{"$ref":"#/components/schemas/Response___object_47ff54077db8"}]},"example":{"message":"Explain the data used in this research.","alreadyVerified":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},{"$ref":"#/components/schemas/Response___object_82dfe35028be"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/auth/verify?token=REPLACE_WITH_YOUR_FLOW_VALUE' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/auth/signin":{"post":{"operationId":"post-auth-signin","tags":["account"],"summary":"POST /api/auth/signin","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/signin","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"}},"required":["email","password"],"additionalProperties":false},"example":{"email":"developer@example.com","password":"EXAMPLE-only-Passphrase-42!"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_47ff54077db8"},"example":{"message":"Explain the data used in this research.","user":{"id":1,"name":"Example research","email":"developer@example.com"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_82dfe35028be"},"example":{"error":"example","message":"Explain the data used in this research."}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f81d949695d5"}]},"example":{"error":"example","code":"example"}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/auth/signin' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/auth/google":{"post":{"operationId":"post-auth-google","tags":["account"],"summary":"POST /api/auth/google","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/google","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"credential":{"type":"string"},"intent":{"type":"string"},"referralCode":{"type":"string"}},"required":["credential"],"additionalProperties":false},"example":{"credential":"REPLACE_WITH_YOUR_FLOW_VALUE"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_601429d306a4"},"example":{"message":"Explain the data used in this research.","user":{"id":1,"name":"Example research","email":"developer@example.com"},"coinAward":null}}}},"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_601429d306a4"},"example":{"message":"Explain the data used in this research.","user":{"id":1,"name":"Example research","email":"developer@example.com"},"coinAward":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},{"$ref":"#/components/schemas/Response___object_82dfe35028be"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_82dfe35028be"},"example":{"error":"example","message":"Explain the data used in this research."}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_82dfe35028be"},"example":{"error":"example","message":"Explain the data used in this research."}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_48298f881db4"},"example":{"error":"example","message":"Explain the data used in this research.","existingUser":false,"authProvider":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},{"$ref":"#/components/schemas/Response___object_82dfe35028be"}]},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/auth/google' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/auth/logout":{"post":{"operationId":"post-auth-logout","tags":["account"],"summary":"POST /api/auth/logout","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/logout","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_62fa864b5c33"},"example":{"message":"Explain the data used in this research."}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/auth/logout' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/auth/csrf":{"get":{"operationId":"get-auth-csrf","tags":["account"],"summary":"GET /api/auth/csrf","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.\n\nSets or refreshes the CSRF cookie. Read the cookie through the supported browser flow and echo it as X-CSRF-Token on protected writes. The API response normalizer removes csrfToken from the JSON body, so do not depend on response.json().csrfToken.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","Sets or refreshes the CSRF cookie. Read the cookie through the supported browser flow and echo it as X-CSRF-Token on protected writes. The API response normalizer removes csrfToken from the JSON body, so do not depend on response.json().csrfToken."],"x-example-url":"https://api.weavers.app/api/auth/csrf","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d2effc9da755"},"example":{}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/auth/csrf' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/auth/check":{"get":{"operationId":"get-auth-check","tags":["account"],"summary":"GET /api/auth/check","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/check","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_8d83505f5a85"},"example":{"authenticated":false,"user":{"id":1,"email":"developer@example.com"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_0b42e5590a78"},"example":{"authenticated":false}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/auth/check' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/auth/forgot-password":{"post":{"operationId":"post-auth-forgot-password","tags":["account"],"summary":"POST /api/auth/forgot-password","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/forgot-password","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"],"additionalProperties":false},"example":{"email":"developer@example.com"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_62fa864b5c33"}]},"example":{"message":"Explain the data used in this research."}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/auth/forgot-password' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/auth/reset-password":{"post":{"operationId":"post-auth-reset-password","tags":["account"],"summary":"POST /api/auth/reset-password","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/reset-password","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"newPassword":{"type":"string"}},"required":["token","newPassword"],"additionalProperties":false},"example":{"token":"REPLACE_WITH_YOUR_FLOW_VALUE","newPassword":"EXAMPLE-only-Passphrase-42!"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_62fa864b5c33"},"example":{"message":"Explain the data used in this research."}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/auth/reset-password' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/auth/resend-verification":{"post":{"operationId":"post-auth-resend-verification","tags":["account"],"summary":"POST /api/auth/resend-verification","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/resend-verification","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"],"additionalProperties":false},"example":{"email":"developer@example.com"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_62fa864b5c33"}]},"example":{"message":"Explain the data used in this research."}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f7134cc8b6d1"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/auth/resend-verification' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/avatars/{key}":{"get":{"operationId":"get-avatars-key","tags":["account"],"summary":"GET /api/avatars/:key","description":"The successful response contains stored image/file bytes. Its Content-Type identifies the representation. Check headers.txt before opening response.bin; an unsuccessful response can contain JSON instead.","x-access":"anonymous","x-notes":["The successful response contains stored image/file bytes. Its Content-Type identifies the representation. Check headers.txt before opening response.bin; an unsuccessful response can contain JSON instead."],"x-example-url":"https://api.weavers.app/api/avatars/example","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_7c363fed2b50"}]},"example":{"error":"example"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_7c363fed2b50"}]},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7c363fed2b50"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --dump-header headers.txt --output response.bin \\\n  --request GET \\\n  'https://api.weavers.app/api/avatars/example'"}]}},"/api/chart":{"get":{"operationId":"get-chart","tags":["backtests"],"summary":"GET /api/chart","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/chart?symbol=AAPL","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"}},{"name":"startDate","in":"query","required":false,"schema":{"type":"string"}},{"name":"endDate","in":"query","required":false,"schema":{"type":"string"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string"}},{"name":"fast","in":"query","required":false,"schema":{"type":"string"}},{"name":"slow","in":"query","required":false,"schema":{"type":"string"}},{"name":"maType","in":"query","required":false,"schema":{"type":"string"}},{"name":"strategy","in":"query","required":false,"schema":{"type":"string"}},{"name":"rsiPeriod","in":"query","required":false,"schema":{"type":"string"}},{"name":"stochKPeriod","in":"query","required":false,"schema":{"type":"string"}},{"name":"stochDPeriod","in":"query","required":false,"schema":{"type":"string"}},{"name":"stochSmooth","in":"query","required":false,"schema":{"type":"string"}},{"name":"cache","in":"query","required":false,"schema":{"type":"string"}},{"name":"realtime","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response_BacktestChartPayload_f923d6f5e24b"}]},"example":{"interval":"1D","candles":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_9a316035a35b"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a316035a35b"},"example":{"error":"example"}}}},"402":{"description":"Credits or entitlement required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_8f25e66bccaa"},"example":{"error":"example","entitlementKey":"Example research","price":30,"scope":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_9a316035a35b"}]},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/chart?symbol=AAPL'"}]}},"/api/backtest":{"post":{"operationId":"post-backtest","tags":["backtests"],"summary":"POST /api/backtest","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nSelect an available strategy identifier and supported parameters from the strategy workflow. Dates must form a supported historical window and capital must be positive. Poll the returned jobId.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.\n\nSend a fresh X-Request-Nonce and current X-Request-Timestamp on every attempt. Reuse an idempotency key only for the same logical action.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Select an available strategy identifier and supported parameters from the strategy workflow. Dates must form a supported historical window and capital must be positive. Poll the returned jobId.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","Send a fresh X-Request-Nonce and current X-Request-Timestamp on every attempt. Reuse an idempotency key only for the same logical action."],"x-example-url":"https://api.weavers.app/api/backtest","parameters":[{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"X-Request-Nonce","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$","description":"Generate a fresh nonce for every attempt."}},{"name":"X-Request-Timestamp","in":"header","required":true,"schema":{"type":"string","pattern":"^(?:[0-9]{10}|[0-9]{13})$","description":"Current Unix seconds (10 digits) or milliseconds (13 digits)."}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"strategyId":{"type":"string"},"strategyAuthorId":{"type":["string","number"]},"params":{"type":"object","additionalProperties":{"type":["string","number","boolean","null"]},"description":"Parameters accepted by the selected registered strategy; names and supported values vary by strategy."},"startDate":{"type":"string"},"endDate":{"type":"string"},"capital":{"type":["string","number"]},"articleId":{"type":"string"},"interval":{"type":"string"}},"required":["strategyId","startDate","endDate","capital"],"additionalProperties":false},"example":{"strategyId":"sma","startDate":"2025-01-01","endDate":"2025-06-30","capital":10000}}}},"responses":{"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_BacktestAcceptedResponse_87bfaa1c71f0"},"example":{"jobId":"1","status":"accepted","message":"Explain the data used in this research."}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_9a316035a35b"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"402":{"description":"Credits or entitlement required.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_86f24c6f113f"},{"$ref":"#/components/schemas/Response___object_c598e383c298"}]},"example":{"error":"entitlement_required","entitlementKey":"advanced_indicators","price":30,"scope":"example"}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a316035a35b"},"example":{"error":"example"}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_9a316035a35b"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/backtest' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header \"X-Request-Nonce: $(openssl rand -hex 16)\" \\\n  --header \"X-Request-Timestamp: $(date +%s)\" \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/backtest/{jobId}":{"get":{"operationId":"get-backtest-jobId","tags":["backtests"],"summary":"GET /api/backtest/:jobId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/backtest/1","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_BacktestStatusResponse_abffef5f05ed"},"example":{"jobId":"1","status":"running"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a316035a35b"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_39b14100a84b"},"example":{"error":"example","code":"job_not_found"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a316035a35b"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/backtest/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/backtests":{"get":{"operationId":"get-backtests","tags":["backtests"],"summary":"GET /api/backtests","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/backtests?symbol=AAPL","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"excludeSelf","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_657442a55485"},"example":{"items":[],"truncated":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_9a316035a35b"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a316035a35b"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/backtests?symbol=AAPL' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/broker/catalog":{"get":{"operationId":"get-broker-catalog","tags":["broker"],"summary":"GET /api/broker/catalog","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/broker/catalog","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b2ebc1eddb1f"},"example":{"defaultProviderId":"alpaca","providers":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/broker/catalog' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/broker/oauth/start":{"get":{"operationId":"get-broker-oauth-start","tags":["broker"],"summary":"GET /api/broker/oauth/start","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/broker/oauth/start","parameters":[{"name":"providerId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"302":{"description":"Continue the browser flow at the Location header.","headers":{"Location":{"description":"Next step in this browser flow.","schema":{"type":"string"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/broker/oauth/start' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/broker/oauth/callback":{"get":{"operationId":"get-broker-oauth-callback","tags":["broker"],"summary":"GET /api/broker/oauth/callback","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/broker/oauth/callback","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string"}},{"name":"error","in":"query","required":false,"schema":{"type":"string"}},{"name":"providerId","in":"query","required":false,"schema":{"type":"string"}},{"name":"scope","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"302":{"description":"Continue the browser flow at the Location header.","headers":{"Location":{"description":"Next step in this browser flow.","schema":{"type":"string"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/broker/oauth/callback' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/broker/connect":{"post":{"operationId":"post-broker-connect","tags":["broker"],"summary":"POST /api/broker/connect","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nOnly paper-trading connections are supported. Omit environment or send paper. Use your own broker credentials in this protected request; never put credentials in a URL or shared example.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Only paper-trading connections are supported. Omit environment or send paper. Use your own broker credentials in this protected request; never put credentials in a URL or shared example.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/broker/connect","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"providerId":{"type":"string"},"apiKeyId":{"type":"string"},"apiSecret":{"type":"string"},"environment":{"enum":["paper"]}},"required":["apiKeyId","apiSecret"],"additionalProperties":false},"example":{"apiKeyId":"1","apiSecret":"REPLACE_WITH_YOUR_FLOW_VALUE"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_be5d2b1500b1"},"example":{"connected":false,"providerId":"alpaca","providerLabel":"Example research","connectMode":"api_key","environment":"paper","accountId":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/broker/connect' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/broker/status":{"get":{"operationId":"get-broker-status","tags":["broker"],"summary":"GET /api/broker/status","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/broker/status","parameters":[{"name":"providerId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_fdbbc0377ba5"},{"$ref":"#/components/schemas/Response___object_d2610e327a6d"}]},"example":{"connected":false,"providerId":"alpaca","providerLabel":"Example research"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/broker/status' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/broker/disconnect":{"post":{"operationId":"post-broker-disconnect","tags":["broker"],"summary":"POST /api/broker/disconnect","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/broker/disconnect","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"providerId":{"type":"string"}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f12d14f68fbd"},"example":{"disconnected":false,"removed":false,"providerId":"alpaca"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/broker/disconnect' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/broker/orders":{"post":{"operationId":"post-broker-orders","tags":["broker"],"summary":"POST /api/broker/orders","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nRequires a connected paper-trading account. Only whole-share quantities are supported; live environments are rejected. Read broker status and verify the symbol, side and quantity before submitting.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.\n\nSend a fresh X-Request-Nonce and current X-Request-Timestamp on every attempt. Reuse an idempotency key only for the same logical action.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Requires a connected paper-trading account. Only whole-share quantities are supported; live environments are rejected. Read broker status and verify the symbol, side and quantity before submitting.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","Send a fresh X-Request-Nonce and current X-Request-Timestamp on every attempt. Reuse an idempotency key only for the same logical action."],"x-example-url":"https://api.weavers.app/api/broker/orders","parameters":[{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"X-Request-Nonce","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$","description":"Generate a fresh nonce for every attempt."}},{"name":"X-Request-Timestamp","in":"header","required":true,"schema":{"type":"string","pattern":"^(?:[0-9]{10}|[0-9]{13})$","description":"Current Unix seconds (10 digits) or milliseconds (13 digits)."}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"providerId":{"type":"string"},"symbol":{"type":"string"},"side":{"enum":["buy","sell"]},"qty":{"anyOf":[{"type":"integer","minimum":1},{"type":"string","description":"Must parse to a positive whole-share quantity."}]}},"required":["symbol","side","qty"],"additionalProperties":false},"example":{"providerId":"alpaca","symbol":"AAPL","side":"buy","qty":1}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_92df8d4bd61d"}]},"example":{"providerId":"alpaca","order":{"id":"1","symbol":"AAPL","side":"buy","qty":1,"status":"example","filledQty":1,"filledAvgPrice":null,"submittedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/broker/orders' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header \"X-Request-Nonce: $(openssl rand -hex 16)\" \\\n  --header \"X-Request-Timestamp: $(date +%s)\" \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]},"get":{"operationId":"get-broker-orders","tags":["broker"],"summary":"GET /api/broker/orders","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/broker/orders","parameters":[{"name":"providerId","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_34bc64eaa122"}]},"example":{"providerId":"alpaca","orders":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f380737f0ad7"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/broker/orders' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/broker/orders/manual":{"get":{"operationId":"get-broker-orders-manual","tags":["broker"],"summary":"GET /api/broker/orders/manual","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/broker/orders/manual","parameters":[{"name":"providerId","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"beforeId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cc0554d9f03"},"example":{"providerId":"alpaca","nextBeforeId":null,"orders":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/broker/orders/manual' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/broker/positions/manual":{"get":{"operationId":"get-broker-positions-manual","tags":["broker"],"summary":"GET /api/broker/positions/manual","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/broker/positions/manual","parameters":[{"name":"providerId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_0fd0e02c7e6a"},"example":{"providerId":"alpaca","positions":[],"summary":{"openPositionCount":1,"grossCostBasis":1,"realizedPnlTotal":1}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/broker/positions/manual' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/broker/equity/manual":{"get":{"operationId":"get-broker-equity-manual","tags":["broker"],"summary":"GET /api/broker/equity/manual","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/broker/equity/manual","parameters":[{"name":"providerId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_40d3bcc2280a"},"example":{"providerId":"alpaca","points":[],"summary":{"startingEquity":1,"endingEquity":1,"realizedPnlTotal":1,"dayCount":1,"lastUpdatedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f380737f0ad7"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/broker/equity/manual' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/channels":{"get":{"operationId":"get-channels","tags":["market-data"],"summary":"GET /api/channels","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/channels?symbol=AAPL","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"}},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string"}},{"name":"windowSize","in":"query","required":false,"schema":{"type":"string"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string"}},{"name":"valid","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_eb7327a01de2"},"example":{"symbol":"AAPL","channels":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_8b95965b1c40"}]},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_8b95965b1c40"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/channels?symbol=AAPL'"}]}},"/api/chat":{"post":{"operationId":"post-chat","tags":["assistants"],"summary":"POST /api/chat","description":"Attachments contain extracted text, not raw uploads. At most four attachments and 24,000 total content characters are accepted.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"anonymous","x-notes":["Attachments contain extracted text, not raw uploads. At most four attachments and 24,000 total content characters are accepted.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/chat","parameters":[{"name":"x-idempotency-key","in":"header","required":false,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"conversationId":{"type":"string"},"attachments":{"type":"array","items":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":120},"mimeType":{"type":"string","minLength":1,"maxLength":120},"sizeBytes":{"type":"number","minimum":0,"maximum":2000000},"content":{"type":"string","minLength":1,"maxLength":12000}},"required":["fileName","mimeType","sizeBytes","content"],"additionalProperties":false},"maxItems":4}},"required":["message"],"additionalProperties":false},"example":{"message":"Explain the data used in this research."}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ChatOrchestratorOutput_abdfc575cd66"},"example":{"reply":"example","conversationId":"1","provider":"github"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_90dc173d7a10"},{"$ref":"#/components/schemas/Response___object_a2c2c625217a"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_90dc173d7a10"}]},"example":{"error":"example"}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"502":{"description":"Dependency failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/chat' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/chat/conversations":{"get":{"operationId":"get-chat-conversations","tags":["assistants"],"summary":"GET /api/chat/conversations","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/chat/conversations","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"beforeId","in":"query","required":false,"schema":{"type":"string"}},{"name":"beforeLastMessageAt","in":"query","required":false,"schema":{"type":"string"}},{"name":"includeArchived","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_Object_0cbe6896d3b6"},"example":{"items":[],"nextCursor":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_a2c2c625217a"}]},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/chat/conversations' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"post":{"operationId":"post-chat-conversations","tags":["assistants"],"summary":"POST /api/chat/conversations","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/chat/conversations","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ChatConversationRecord_cd30e666a537"},"example":{"id":"1","userId":1,"title":"Example research","status":"active","modelId":"1","contextSummary":"example","summaryUpdatedAt":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","preview":null,"messageCount":1,"metadata":{}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/chat/conversations' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/chat/conversations/{conversationId}":{"patch":{"operationId":"patch-chat-conversations-conversationId","tags":["assistants"],"summary":"PATCH /api/chat/conversations/:conversationId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/chat/conversations/1","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"status":{"type":"string"}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ChatConversationRecord_cd30e666a537"},"example":{"id":"1","userId":1,"title":"Example research","status":"active","modelId":"1","contextSummary":"example","summaryUpdatedAt":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","preview":null,"messageCount":1,"metadata":{}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_a2c2c625217a"}]},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_a2c2c625217a"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PATCH \\\n  'https://api.weavers.app/api/chat/conversations/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/chat/conversations/{conversationId}/messages":{"get":{"operationId":"get-chat-conversations-conversationId-messages","tags":["assistants"],"summary":"GET /api/chat/conversations/:conversationId/messages","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/chat/conversations/1/messages","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"beforeId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ChatHistoryPage_f07f5cb397b5"},"example":{"items":[],"nextCursor":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_a2c2c625217a"}]},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a2c2c625217a"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/chat/conversations/1/messages' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/me/coins/gifts/sent":{"get":{"operationId":"get-me-coins-gifts-sent","tags":["credits"],"summary":"GET /api/me/coins/gifts/sent","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/coins/gifts/sent","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e1897c568ac8"},"example":{"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_8b85ec787d91"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/coins/gifts/sent' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/me/coins/gifts/received":{"get":{"operationId":"get-me-coins-gifts-received","tags":["credits"],"summary":"GET /api/me/coins/gifts/received","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/coins/gifts/received","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e1897c568ac8"},"example":{"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_8b85ec787d91"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/coins/gifts/received' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/me/coins/gift":{"post":{"operationId":"post-me-coins-gift","tags":["credits"],"summary":"POST /api/me/coins/gift","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.\n\nSend a fresh X-Request-Nonce and current X-Request-Timestamp on every attempt. Reuse an idempotency key only for the same logical action.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","Send a fresh X-Request-Nonce and current X-Request-Timestamp on every attempt. Reuse an idempotency key only for the same logical action."],"x-example-url":"https://api.weavers.app/api/me/coins/gift","parameters":[{"name":"x-idempotency-key","in":"header","required":false,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"X-Request-Nonce","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$","description":"Generate a fresh nonce for every attempt."}},{"name":"X-Request-Timestamp","in":"header","required":true,"schema":{"type":"string","pattern":"^(?:[0-9]{10}|[0-9]{13})$","description":"Current Unix seconds (10 digits) or milliseconds (13 digits)."}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"recipientUserId":{"type":["string","number"]},"amount":{"type":["string","number"]},"note":{"type":"string"},"idempotencyKey":{"type":"string"}},"required":["recipientUserId","amount"],"additionalProperties":false},"example":{"recipientUserId":"1","amount":"1"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d7d6300c546c"},"example":{"status":"sent","gift":{"id":1,"senderUserId":1,"recipientUserId":1,"amount":1,"status":"failed","idempotencyKey":"example-request-0001","metadata":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"},"balance":1,"wallets":{"earned":1,"promo":1,"purchased":1,"total":1},"recipientBalance":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_8b85ec787d91"},{"$ref":"#/components/schemas/Response___object_a52725840a60"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"402":{"description":"Credits or entitlement required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_08760dd239e8"},"example":{"error":"example","missing":1,"balance":1,"wallets":{"earned":1,"promo":1,"purchased":1,"total":1}}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_c50635d9488d"},"example":{"error":"gifting_disabled"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_4aec2fe76408"},"example":{"error":"recipient_not_found"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e513748c1ac9"},"example":{"error":"daily_cap_reached","cap":1,"used":1,"remaining":1}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_8b85ec787d91"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/me/coins/gift' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header \"X-Request-Nonce: $(openssl rand -hex 16)\" \\\n  --header \"X-Request-Timestamp: $(date +%s)\" \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/contact":{"post":{"operationId":"post-contact","tags":["support"],"summary":"POST /api/contact","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/contact","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"subject":{"type":"string"},"message":{"type":"string"}},"required":["name","email","subject","message"],"additionalProperties":false},"example":{"name":"Example research","email":"developer@example.com","subject":"example","message":"Explain the data used in this research."}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bb90ac82096f"},"example":{"success":false,"message":"Explain the data used in this research."}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_fba00e2ace7a"}]},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_fba00e2ace7a"}]},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/contact' \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/entitlements":{"get":{"operationId":"get-entitlements","tags":["credits"],"summary":"GET /api/entitlements","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/entitlements","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e5041a35b02d"},"example":{"entitlements":[],"pricing":{"premiumArticleUnlock":15,"advancedIndicatorsDayPass":30,"extendedBacktestRun":80}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_3ce9928e63e7"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/entitlements' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/entitlements/advanced-indicators":{"post":{"operationId":"post-entitlements-advanced-indicators","tags":["credits"],"summary":"POST /api/entitlements/advanced-indicators","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/entitlements/advanced-indicators","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbol":{"type":"string"}},"required":["symbol"],"additionalProperties":false},"example":{"symbol":"AAPL"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_34dbce894f7a"},{"$ref":"#/components/schemas/Response___object_9d86fbd5ea32"}]},"example":{"status":"example","entitlement":{"key":"premium_article_card","scope":"example","expiresAt":null,"createdAt":"2025-01-01T00:00:00.000Z"},"pricing":{"advancedIndicatorsDayPass":30}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3ce9928e63e7"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"402":{"description":"Credits or entitlement required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2e113e0c94b7"},"example":{"error":"example","missing":1,"balance":1,"unlockCost":30}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_3ce9928e63e7"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/entitlements/advanced-indicators' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/experiment-drafts":{"get":{"operationId":"get-eureka-experiment-drafts","tags":["workspaces"],"summary":"GET /api/eureka/experiment-drafts","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/experiment-drafts","parameters":[{"name":"strategyId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ExperimentDraftList_0cd3ae4629c7"},"example":{"drafts":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_4a78183f284f"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_042c6821bf9f"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d0097efc069e"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/experiment-drafts' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"post":{"operationId":"post-eureka-experiment-drafts","tags":["workspaces"],"summary":"POST /api/eureka/experiment-drafts","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nUse UUID v4 identifiers for both the draft and its owned strategy workspace. Name: 1–120 characters; research question: at most 1,600 characters; configuration: at most 256 KiB. Omit configuration to use the server default.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Use UUID v4 identifiers for both the draft and its owned strategy workspace. Name: 1–120 characters; research question: at most 1,600 characters; configuration: at most 256 KiB. Omit configuration to use the server default.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/experiment-drafts","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"draftId":{"type":"string"},"strategyId":{"type":"string"},"name":{"type":"string"},"researchQuestion":{"type":"string"},"configuration":{"anyOf":[{"$ref":"#/components/schemas/Input_OptimisationCreateRequest_e76df567da71"},{"$ref":"#/components/schemas/Input_PythonExperimentDraftConfiguration_d43ed0db7a94"}]},"setupStep":{"enum":[0,1,3,2]}},"required":["draftId","strategyId"],"additionalProperties":false},"example":{"draftId":"11111111-1111-4111-8111-111111111111","strategyId":"11111111-1111-4111-8111-111111111111"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_547119974497"},"example":{"draft":{"draftId":"11111111-1111-4111-8111-111111111111","strategyId":"11111111-1111-4111-8111-111111111111","name":"Example research","revision":1,"mode":"guided","setupStep":0,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","configuration":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}},"researchQuestion":"example"}}}}},"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_547119974497"},"example":{"draft":{"draftId":"11111111-1111-4111-8111-111111111111","strategyId":"11111111-1111-4111-8111-111111111111","name":"Example research","revision":1,"mode":"guided","setupStep":0,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","configuration":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}},"researchQuestion":"example"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_042c6821bf9f"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d0097efc069e"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/experiment-drafts' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/experiment-drafts/{draftId}":{"get":{"operationId":"get-eureka-experiment-drafts-draftId","tags":["workspaces"],"summary":"GET /api/eureka/experiment-drafts/:draftId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/experiment-drafts/11111111-1111-4111-8111-111111111111","parameters":[{"name":"draftId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_547119974497"},"example":{"draft":{"draftId":"11111111-1111-4111-8111-111111111111","strategyId":"11111111-1111-4111-8111-111111111111","name":"Example research","revision":1,"mode":"guided","setupStep":0,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","configuration":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}},"researchQuestion":"example"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_042c6821bf9f"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d0097efc069e"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/experiment-drafts/11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"put":{"operationId":"put-eureka-experiment-drafts-draftId","tags":["workspaces"],"summary":"PUT /api/eureka/experiment-drafts/:draftId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nRead the draft first and send its current revision as expectedRevision. A stale revision returns 409. Configuration is a complete replacement, not a partial patch.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Read the draft first and send its current revision as expectedRevision. A stale revision returns 409. Configuration is a complete replacement, not a partial patch.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/experiment-drafts/11111111-1111-4111-8111-111111111111","parameters":[{"name":"draftId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedRevision":{"type":"number"},"name":{"type":"string"},"researchQuestion":{"type":"string"},"configuration":{"anyOf":[{"$ref":"#/components/schemas/Input_OptimisationCreateRequest_e76df567da71"},{"$ref":"#/components/schemas/Input_PythonExperimentDraftConfiguration_d43ed0db7a94"}]},"setupStep":{"enum":[0,1,3,2]}},"required":["expectedRevision"],"additionalProperties":false},"example":{"expectedRevision":1,"name":"Updated experiment"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_547119974497"},"example":{"draft":{"draftId":"11111111-1111-4111-8111-111111111111","strategyId":"11111111-1111-4111-8111-111111111111","name":"Example research","revision":1,"mode":"guided","setupStep":0,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","configuration":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}},"researchQuestion":"example"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_042c6821bf9f"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d0097efc069e"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PUT \\\n  'https://api.weavers.app/api/eureka/experiment-drafts/11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]},"delete":{"operationId":"delete-eureka-experiment-drafts-draftId","tags":["workspaces"],"summary":"DELETE /api/eureka/experiment-drafts/:draftId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/experiment-drafts/11111111-1111-4111-8111-111111111111","parameters":[{"name":"draftId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"204":{"description":"Successful deletion; no response body."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_042c6821bf9f"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d0097efc069e"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request DELETE \\\n  'https://api.weavers.app/api/eureka/experiment-drafts/11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/eureka/loomy/conversations":{"get":{"operationId":"get-eureka-loomy-conversations","tags":["assistants"],"summary":"GET /api/eureka/loomy/conversations","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/loomy/conversations","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaLoomyConversationListResponse_ae7cfb17d100"},"example":{"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a4c32e62583"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_752b486b60a3"},{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/loomy/conversations' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"post":{"operationId":"post-eureka-loomy-conversations","tags":["assistants"],"summary":"POST /api/eureka/loomy/conversations","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/loomy/conversations","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaLoomyThreadResponse_fe898b9f18a8"},"example":{"conversation":{"conversationId":"1","title":"Example research","preview":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","messageCount":1},"messages":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a4c32e62583"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_752b486b60a3"},{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/loomy/conversations' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/loomy/conversations/{conversationId}":{"get":{"operationId":"get-eureka-loomy-conversations-conversationId","tags":["assistants"],"summary":"GET /api/eureka/loomy/conversations/:conversationId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/loomy/conversations/1","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaLoomyThreadResponse_fe898b9f18a8"},"example":{"conversation":{"conversationId":"1","title":"Example research","preview":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","messageCount":1},"messages":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a4c32e62583"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_752b486b60a3"},{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/loomy/conversations/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/loomy/conversations/{conversationId}/messages":{"post":{"operationId":"post-eureka-loomy-conversations-conversationId-messages","tags":["assistants"],"summary":"POST /api/eureka/loomy/conversations/:conversationId/messages","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nUse the current workspace revision, or null for the unscoped conversation. The HTTP boundary currently accepts the documented fields only; Python context fields from newer shared types are not accepted by this route's boundary.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Use the current workspace revision, or null for the unscoped conversation. The HTTP boundary currently accepts the documented fields only; Python context fields from newer shared types are not accepted by this route's boundary.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/loomy/conversations/1/messages","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"strategyRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"activeView":{"enum":["python","tickers","notebook","canvas","builder","preflight"]},"activeSection":{"enum":["build","runs","certify","portfolio"]},"runId":{"anyOf":[{"type":"null"},{"type":"string"}]},"notebookKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"datasetVersionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"experimentDraftId":{"anyOf":[{"type":"null"},{"type":"string"}]},"includePythonContext":{"enum":[false,true]},"supportsCanvasEvidence":{"type":"boolean"},"preflight":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_EurekaLoomyPreflightSnapshot_116ac5793e45"}]}},"required":["message","strategyRevision","activeView"],"additionalProperties":false},"example":{"message":"Explain the available research steps.","strategyRevision":null,"activeView":"notebook"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaLoomySendResponse_f073f5de001a"},"example":{"conversation":{"conversationId":"1","title":"Example research","preview":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","messageCount":1},"messages":[],"assistant":{"id":"1","role":"user","content":"Explain the data used in this research.","createdAt":"2025-01-01T00:00:00.000Z","proposal":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a4c32e62583"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_752b486b60a3"},{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/loomy/conversations/1/messages' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/strategy-workspaces/{strategyId}/loomy/conversations":{"get":{"operationId":"get-eureka-strategy-workspaces-strategyId-loomy-conversations","tags":["assistants"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId/loomy/conversations","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/loomy/conversations","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaLoomyConversationListResponse_ae7cfb17d100"},"example":{"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a4c32e62583"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_752b486b60a3"},{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/loomy/conversations' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"post":{"operationId":"post-eureka-strategy-workspaces-strategyId-loomy-conversations","tags":["assistants"],"summary":"POST /api/eureka/strategy-workspaces/:strategyId/loomy/conversations","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/loomy/conversations","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaLoomyThreadResponse_fe898b9f18a8"},"example":{"conversation":{"conversationId":"1","title":"Example research","preview":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","messageCount":1},"messages":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a4c32e62583"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_752b486b60a3"},{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/loomy/conversations' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/strategy-workspaces/{strategyId}/loomy/conversations/{conversationId}":{"get":{"operationId":"get-eureka-strategy-workspaces-strategyId-loomy-conversations-conversationId","tags":["assistants"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId/loomy/conversations/:conversationId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/loomy/conversations/1","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"conversationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaLoomyThreadResponse_fe898b9f18a8"},"example":{"conversation":{"conversationId":"1","title":"Example research","preview":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","messageCount":1},"messages":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a4c32e62583"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_752b486b60a3"},{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/loomy/conversations/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/strategy-workspaces/{strategyId}/loomy/conversations/{conversationId}/messages":{"post":{"operationId":"post-eureka-strategy-workspaces-strategyId-loomy-conversations-conversationId-messages","tags":["assistants"],"summary":"POST /api/eureka/strategy-workspaces/:strategyId/loomy/conversations/:conversationId/messages","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nUse the current workspace revision, or null for the unscoped conversation. The HTTP boundary currently accepts the documented fields only; Python context fields from newer shared types are not accepted by this route's boundary.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Use the current workspace revision, or null for the unscoped conversation. The HTTP boundary currently accepts the documented fields only; Python context fields from newer shared types are not accepted by this route's boundary.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/loomy/conversations/1/messages","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"conversationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"strategyRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"activeView":{"enum":["python","tickers","notebook","canvas","builder","preflight"]},"activeSection":{"enum":["build","runs","certify","portfolio"]},"runId":{"anyOf":[{"type":"null"},{"type":"string"}]},"notebookKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"datasetVersionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"experimentDraftId":{"anyOf":[{"type":"null"},{"type":"string"}]},"includePythonContext":{"enum":[false,true]},"supportsCanvasEvidence":{"type":"boolean"},"preflight":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_EurekaLoomyPreflightSnapshot_116ac5793e45"}]}},"required":["message","strategyRevision","activeView"],"additionalProperties":false},"example":{"message":"Explain the current research configuration.","strategyRevision":1,"activeView":"notebook"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaLoomySendResponse_f073f5de001a"},"example":{"conversation":{"conversationId":"1","title":"Example research","preview":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","messageCount":1},"messages":[],"assistant":{"id":"1","role":"user","content":"Explain the data used in this research.","createdAt":"2025-01-01T00:00:00.000Z","proposal":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9a4c32e62583"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_752b486b60a3"},{"$ref":"#/components/schemas/Response___object_411e5eb60a0e"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/loomy/conversations/1/messages' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/assistant/credentials":{"get":{"operationId":"get-eureka-assistant-credentials","tags":["assistants"],"summary":"GET /api/eureka/assistant/credentials","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/assistant/credentials","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_0eee26c35bac"},"example":{"items":[],"runtime":{"modelId":"1","mcp":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/assistant/credentials' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/assistant/codex-session/login":{"post":{"operationId":"post-eureka-assistant-codex-session-login","tags":["assistants"],"summary":"POST /api/eureka/assistant/codex-session/login","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/assistant/codex-session/login","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantCodexLoginStartResponse_a30b776c02fe"},"example":{"loginId":"1","status":"failed","verificationUrl":"example","userCode":"example","expiresAt":"2025-01-01T00:00:00.000Z"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/assistant/codex-session/login' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/eureka/assistant/codex-session/login/{loginId}":{"get":{"operationId":"get-eureka-assistant-codex-session-login-loginId","tags":["assistants"],"summary":"GET /api/eureka/assistant/codex-session/login/:loginId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/assistant/codex-session/login/1","parameters":[{"name":"loginId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantCodexLoginPollResponse_9a42e82f5b02"},"example":{"loginId":"1","status":"failed","item":null,"error":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/assistant/codex-session/login/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/assistant/codex-session":{"delete":{"operationId":"delete-eureka-assistant-codex-session","tags":["assistants"],"summary":"DELETE /api/eureka/assistant/codex-session","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/assistant/codex-session","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f55eb4c78803"},"example":{"item":{"provider":"codex","authType":"oauth","configured":false,"status":"missing","label":null,"fingerprint":null,"lastVerifiedAt":null,"updatedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request DELETE \\\n  'https://api.weavers.app/api/eureka/assistant/codex-session' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/eureka/assistant/threads":{"get":{"operationId":"get-eureka-assistant-threads","tags":["assistants"],"summary":"GET /api/eureka/assistant/threads","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/assistant/threads","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string","pattern":"^[0-9]+$"}},{"name":"beforeId","in":"query","required":false,"schema":{"type":"string","maxLength":40}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantThreadListResponse_c421eddb99d2"},"example":{"items":[],"nextCursor":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/assistant/threads' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/notebooks/{notebookKey}/assistant/threads":{"post":{"operationId":"post-eureka-notebooks-notebookKey-assistant-threads","tags":["assistants"],"summary":"POST /api/eureka/notebooks/:notebookKey/assistant/threads","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/threads","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantThreadCreateResponse_205a340d16b0"},"example":{"conversationId":"1","scopeKey":"example","threadId":"1"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/threads' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/eureka/notebooks/{notebookKey}/assistant/thread":{"get":{"operationId":"get-eureka-notebooks-notebookKey-assistant-thread","tags":["assistants"],"summary":"GET /api/eureka/notebooks/:notebookKey/assistant/thread","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/thread","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"runId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]}},{"name":"threadId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantThreadResponse_15345e7c2bf3"},"example":{"conversationId":null,"scopeKey":"example","messages":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/thread' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"delete":{"operationId":"delete-eureka-notebooks-notebookKey-assistant-thread","tags":["assistants"],"summary":"DELETE /api/eureka/notebooks/:notebookKey/assistant/thread","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nBody runId/threadId take precedence over query values. Clearing affects the selected owned thread.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Body runId/threadId take precedence over query values. Clearing affects the selected owned thread.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/thread","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"runId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]}},{"name":"threadId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]},"threadId":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantThreadMutationResponse_a88f4ec52a77"},"example":{"conversationId":null,"scopeKey":"example","messages":[],"appended":1,"skipped":1}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request DELETE \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/thread' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/notebooks/{notebookKey}/assistant/thread/messages":{"post":{"operationId":"post-eureka-notebooks-notebookKey-assistant-thread-messages","tags":["assistants"],"summary":"POST /api/eureka/notebooks/:notebookKey/assistant/thread/messages","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nThis sync operation records messages. A duplicate reserved request key returns 409; it does not replay the response.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","This sync operation records messages. A duplicate reserved request key returns 409; it does not replay the response.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/thread/messages","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]},"threadId":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","properties":{"clientId":{"type":"string","pattern":"^[A-Za-z0-9._:-]+$","maxLength":180},"role":{"enum":["user","assistant"]},"content":{"type":"string","minLength":1,"maxLength":8000},"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["clientId","role","content"],"additionalProperties":false},"maxItems":50}},"required":["messages"],"additionalProperties":false},"example":{"messages":[{"clientId":"docs-message-1","role":"user","content":"Explain this notebook's data inputs."}]}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantThreadMutationResponse_a88f4ec52a77"},"example":{"conversationId":null,"scopeKey":"example","messages":[],"appended":1,"skipped":1}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/thread/messages' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/notebooks/{notebookKey}/assistant/messages":{"post":{"operationId":"post-eureka-notebooks-notebookKey-assistant-messages","tags":["assistants"],"summary":"POST /api/eureka/notebooks/:notebookKey/assistant/messages","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\n202 queues assistant work. Poll the requestId under this same notebook; receiving a request identifier does not mean an answer is ready.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","202 queues assistant work. Poll the requestId under this same notebook; receiving a request identifier does not mean an answer is ready.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/messages","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]},"threadId":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]},"message":{"type":"string","minLength":1,"maxLength":8000},"selectedCellId":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"includeDiagnostics":{"type":"boolean"},"diagnostics":{"type":"array","items":{"type":"string","maxLength":420},"maxItems":80},"strategyContextLines":{"type":"array","items":{"type":"string","maxLength":420},"maxItems":80}},"required":["message"],"additionalProperties":false},"example":{"message":"Explain this notebook's data inputs.","includeDiagnostics":false}}}},"responses":{"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantMessageRequestResponse_408f3df6e445"},"example":{"conversationId":"1","scopeKey":"example","messages":[],"request":{"requestId":"1","status":"running","errorCode":null,"errorMessage":null,"createdAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null,"updatedAt":"2025-01-01T00:00:00.000Z"},"assistant":null,"provider":null,"authType":null,"modelId":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/messages' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/notebooks/{notebookKey}/assistant/messages/{requestId}":{"get":{"operationId":"get-eureka-notebooks-notebookKey-assistant-messages-requestId","tags":["assistants"],"summary":"GET /api/eureka/notebooks/:notebookKey/assistant/messages/:requestId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/messages/1","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"requestId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantMessageRequestResponse_408f3df6e445"},"example":{"conversationId":"1","scopeKey":"example","messages":[],"request":{"requestId":"1","status":"running","errorCode":null,"errorMessage":null,"createdAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null,"updatedAt":"2025-01-01T00:00:00.000Z"},"assistant":null,"provider":null,"authType":null,"modelId":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_3b5aa3bf4011"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/assistant/messages/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/notebooks/{notebookKey}/executions":{"post":{"operationId":"post-eureka-notebooks-notebookKey-executions","tags":["notebooks"],"summary":"POST /api/eureka/notebooks/:notebookKey/executions","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nSave the notebook before submitting. Compute notebookRevision as the lowercase SHA-256 of UTF-8 JSON.stringify({notebookKey,cells}), where cells is the ordered array of {id,sourceSha256,sourceUpdatedAt} for executed cells. Hash each exact UTF-8 source for sourceSha256 and count its UTF-8 bytes for sourceBytes. Use the current saved cell timestamps and owned strategy/data reference. 202 creates a job; 200 returns an idempotent replay. Poll GET /api/eureka/notebooks/executions/{jobId}; completion is separate from applying an output.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Save the notebook before submitting. Compute notebookRevision as the lowercase SHA-256 of UTF-8 JSON.stringify({notebookKey,cells}), where cells is the ordered array of {id,sourceSha256,sourceUpdatedAt} for executed cells. Hash each exact UTF-8 source for sourceSha256 and count its UTF-8 bytes for sourceBytes. Use the current saved cell timestamps and owned strategy/data reference. 202 creates a job; 200 returns an idempotent replay. Poll GET /api/eureka/notebooks/executions/{jobId}; completion is separate from applying an output.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/executions","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"notebookKey":{"type":"string"},"notebookRevision":{"type":"string"},"targetCellId":{"type":"string"},"mode":{"enum":["all","through_cell"]},"cells":{"type":"array","items":{"$ref":"#/components/schemas/Input_WeaversNotebookExecutionCell_025e77e2048f"}},"dataReference":{"$ref":"#/components/schemas/Input_WeaversNotebookExecutionDataReference_2db31879a4bd"},"resourceLimits":{"$ref":"#/components/schemas/Input_Partial_917e944ec9c5"},"backend":{"enum":["local","local_docker","local_gpu","remote_kubernetes"]}},"required":["notebookKey","notebookRevision","targetCellId","mode","cells","dataReference","backend"],"additionalProperties":false},"example":{"notebookKey":"strategy-11111111-1111-4111-8111-111111111111","notebookRevision":"dd87fe56811ca3d21fc726e0189fd3ec1063263aa5f3f37135fc30bf58479721","targetCellId":"example-cell","mode":"through_cell","cells":[{"cellId":"example-cell","source":"print('Research example')\n","sourceSha256":"51a5983fa1333c582c710ed6131d2bc0d641866150cf23001603a4ae0685b173","sourceBytes":26,"sourceUpdatedAt":"2025-01-01T00:00:00.000Z"}],"dataReference":{"strategyId":"11111111-1111-4111-8111-111111111111","strategyRevision":1,"symbols":["AAPL"],"provider":"alpaca","startDate":"2025-01-01","endDate":"2025-06-30","timeframe":"1D"},"backend":"local"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_WeaversNotebookExecutionSubmitResponse_2c9e3ab7ec88"},"example":{"execution":{"schema":"weavers.notebook.execution.v2","version":2,"jobId":"1","notebookKey":"strategy-11111111-1111-4111-8111-111111111111","notebookRevision":"example","cellId":"1","cellIds":[],"mode":"all","strategyRevision":1,"dataContextSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","resourceLimits":{"timeoutSeconds":1,"outputMaxBytes":1},"backend":"local","status":"running","sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sourceBytes":1,"backendJobId":null,"message":"Explain the data used in this research.","outputs":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","completedAt":null},"idempotentReplay":false}}}},"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_WeaversNotebookExecutionSubmitResponse_2c9e3ab7ec88"},"example":{"execution":{"schema":"weavers.notebook.execution.v2","version":2,"jobId":"1","notebookKey":"strategy-11111111-1111-4111-8111-111111111111","notebookRevision":"example","cellId":"1","cellIds":[],"mode":"all","strategyRevision":1,"dataContextSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","resourceLimits":{"timeoutSeconds":1,"outputMaxBytes":1},"backend":"local","status":"running","sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sourceBytes":1,"backendJobId":null,"message":"Explain the data used in this research.","outputs":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","completedAt":null},"idempotentReplay":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_807228d51274"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/executions' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/notebooks/executions/{jobId}":{"get":{"operationId":"get-eureka-notebooks-executions-jobId","tags":["notebooks"],"summary":"GET /api/eureka/notebooks/executions/:jobId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/executions/1","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_d4fa0297ae27"},"example":{"execution":{"schema":"weavers.notebook.execution.v2","version":2,"jobId":"1","notebookKey":"strategy-11111111-1111-4111-8111-111111111111","notebookRevision":"example","cellId":"1","cellIds":[],"mode":"all","strategyRevision":1,"dataContextSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","resourceLimits":{"timeoutSeconds":1,"outputMaxBytes":1},"backend":"local","status":"running","sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sourceBytes":1,"backendJobId":null,"message":"Explain the data used in this research.","outputs":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","completedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_807228d51274"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/notebooks/executions/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"patch":{"operationId":"patch-eureka-notebooks-executions-jobId","tags":["notebooks"],"summary":"PATCH /api/eureka/notebooks/executions/:jobId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nOnly valid job transitions for the job owner and execution backend are accepted. A user session does not grant worker authority.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Only valid job transitions for the job owner and execution backend are accepted. A user session does not grant worker authority.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/executions/1","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"enum":["running","blocked","accepted","submitted","succeeded","failed","cancelled"]},"backendJobId":{"anyOf":[{"type":"null"},{"type":"string"}]},"message":{"anyOf":[{"type":"null"},{"type":"string"}]},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/Input_WeaversNotebookOutput_07494e2532db"}}},"required":["status"],"additionalProperties":false},"example":{"status":"running"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_d4fa0297ae27"},"example":{"execution":{"schema":"weavers.notebook.execution.v2","version":2,"jobId":"1","notebookKey":"strategy-11111111-1111-4111-8111-111111111111","notebookRevision":"example","cellId":"1","cellIds":[],"mode":"all","strategyRevision":1,"dataContextSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","resourceLimits":{"timeoutSeconds":1,"outputMaxBytes":1},"backend":"local","status":"running","sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sourceBytes":1,"backendJobId":null,"message":"Explain the data used in this research.","outputs":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","completedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_807228d51274"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PATCH \\\n  'https://api.weavers.app/api/eureka/notebooks/executions/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/notebooks/executions/{jobId}/apply":{"post":{"operationId":"post-eureka-notebooks-executions-jobId-apply","tags":["notebooks"],"summary":"POST /api/eureka/notebooks/executions/:jobId/apply","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/executions/1/apply","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"outputId":{"type":"string"},"expectedNotebookRevision":{"type":"string"},"expectedStrategyRevision":{"type":"number"},"confirmed":{"type":"boolean"}},"required":["outputId","expectedNotebookRevision","expectedStrategyRevision","confirmed"],"additionalProperties":false},"example":{"outputId":"1","expectedNotebookRevision":"example","expectedStrategyRevision":1,"confirmed":false}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_WeaversNotebookStrategyApplyResponse_de5fb166adb7"},"example":{"strategy":{"strategyId":"11111111-1111-4111-8111-111111111111","name":"Example research","revision":1,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","draft":{"schema":"weavers.strategy-draft.v1","tickerSymbols":[],"configuration":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}}}},"executionJobId":"1","outputId":"1","results":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_807228d51274"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/notebooks/executions/1/apply' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/notebooks/executions/{jobId}/cancel":{"post":{"operationId":"post-eureka-notebooks-executions-jobId-cancel","tags":["notebooks"],"summary":"POST /api/eureka/notebooks/executions/:jobId/cancel","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/executions/1/cancel","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_d4fa0297ae27"},"example":{"execution":{"schema":"weavers.notebook.execution.v2","version":2,"jobId":"1","notebookKey":"strategy-11111111-1111-4111-8111-111111111111","notebookRevision":"example","cellId":"1","cellIds":[],"mode":"all","strategyRevision":1,"dataContextSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","resourceLimits":{"timeoutSeconds":1,"outputMaxBytes":1},"backend":"local","status":"running","sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sourceBytes":1,"backendJobId":null,"message":"Explain the data used in this research.","outputs":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","completedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_807228d51274"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/notebooks/executions/1/cancel' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/eureka/notebooks/{notebookKey}/strategy-runs":{"post":{"operationId":"post-eureka-notebooks-notebookKey-strategy-runs","tags":["notebooks"],"summary":"POST /api/eureka/notebooks/:notebookKey/strategy-runs","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nUse a saved notebook and 1–24 selected code cells. Hashes and byte counts must match the saved cell source. Maximum request size: 320 KiB. Use the returned runId to inspect the optimisation run.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.\n\nSend a fresh X-Request-Nonce and current X-Request-Timestamp on every attempt. Reuse an idempotency key only for the same logical action.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Use a saved notebook and 1–24 selected code cells. Hashes and byte counts must match the saved cell source. Maximum request size: 320 KiB. Use the returned runId to inspect the optimisation run.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","Send a fresh X-Request-Nonce and current X-Request-Timestamp on every attempt. Reuse an idempotency key only for the same logical action."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/strategy-runs","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"X-Request-Nonce","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$","description":"Generate a fresh nonce for every attempt."}},{"name":"X-Request-Timestamp","in":"header","required":true,"schema":{"type":"string","pattern":"^(?:[0-9]{10}|[0-9]{13})$","description":"Current Unix seconds (10 digits) or milliseconds (13 digits)."}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.notebook.strategy_run.v1"},"version":{"type":"number","const":1},"notebookKey":{"type":"string"},"notebookSavedAt":{"type":"string"},"engine":{"enum":["local","cloud"]},"selectedCells":{"type":"array","items":{"$ref":"#/components/schemas/Input_WeaversNotebookStrategyRunSelectedCell_ab226514e4b1"}},"document":{"$ref":"#/components/schemas/Input_WeaversNotebookDocument_ef3d312af85a"},"optimisationRequest":{"$ref":"#/components/schemas/Input_OptimisationCreateRequest_e76df567da71"}},"required":["schema","version","notebookKey","notebookSavedAt","engine","selectedCells","optimisationRequest"],"additionalProperties":false},"example":{"schema":"weavers.notebook.strategy_run.v1","version":1,"notebookKey":"strategy-11111111-1111-4111-8111-111111111111","notebookSavedAt":"2025-01-01T00:00:00.000Z","engine":"cloud","selectedCells":[{"cellId":"example-cell","sourceSha256":"51a5983fa1333c582c710ed6131d2bc0d641866150cf23001603a4ae0685b173","sourceBytes":26,"sourceUpdatedAt":"2025-01-01T00:00:00.000Z"}],"optimisationRequest":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":6,"startDate":"2022-08-01","endDate":"2026-02-18","equitiesOnly":true,"excludeEtfs":true,"excludeIndiaEtfs":true,"stageATrials":100,"stageA2Mode":"disabled","stageA2Trials":100,"stageAToA2Threshold":0.5,"stageA2HorizonBars":5,"stageA2LabelMinUpPct":0.01,"stageA2PredictorFeaturesCsv":"source_stage_a_p_hat,intraday_return_1,intraday_range_pct,intraday_close_pos_session,session_progress","stageBTrials":200,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":5,"lookbackYears":3,"trainMonths":24,"valMonths":1,"stepMonths":1,"purgeDays":7,"holdoutMonths":6,"holdoutStartDate":null,"horizonBars":5,"labelMinUpPct":0.01,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"gamma_atr_norm,atr_slope_14,atr_14,close_pos_20,macd_delta_ma,rsi_delta_ma,wavelet_curvature","stageADecisionThreshold":0.5,"entryFilters":null,"stageALearningRateMin":0.0001,"stageALearningRateMax":0.05,"stageAL2Min":1e-7,"stageAL2Max":0.1,"stageAEpochsMin":100,"stageAEpochsMax":1200,"stageAPosWeightMin":1,"stageAPosWeightMax":8,"tpMin":0.0005,"tpMax":0.08,"slMin":0.0003,"slMax":0.08,"reserveCashPctMin":0.2,"reserveCashPctMax":0.2,"optimizeProbThreshold":true,"probThresholdMin":0.68,"probThresholdMax":0.75,"executionMode":"capital","executionBrokerId":"none","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":5000,"riskPerTradePct":0.02,"maxPositionPctEquity":0.05,"maxGrossExposurePctEquity":0.5,"allowFractionalShares":true,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":2,"halfSpreadBps":0,"borrowBpsPerBar":0,"minTrades":30,"maxDrawdown":0.25,"drawdownGateMetric":"max_drawdown_stitched","maxSymbolConcentration":0.25,"minRiskAdjusted":0,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":0.25,"lambdaTail":0.75,"lambdaDrawdown":1,"lambdaConcentration":0.5,"lambdaTurnover":0.1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":701,"stageBSeedBase":1701},"executionPlan":{"mode":"stage_a_to_b","stageASourceRunId":null,"stageAComponent":{"sourceKind":"weavers_preset","componentType":"stage_a","componentKey":"weavers.tp_sl.stage_a.xgb.v1"},"stageBComponent":{"sourceKind":"weavers_preset","componentType":"stage_b","componentKey":"weavers.tp_sl.stage_b.nsga2.v1"},"stageAUniverseSource":{"type":"base"},"stageADataSelectors":null,"canvas":{"version":1,"nodes":[{"id":"stage-a","kind":"stage_a_trainer","x":56,"y":84},{"id":"stage-b-entry-gate","kind":"stage_b_entry_gate","x":312,"y":84},{"id":"stage-b-feasibility-gate","kind":"stage_b_feasibility_gate","x":568,"y":84},{"id":"stage-b","kind":"stage_b_optimizer","x":824,"y":84}],"edges":[{"id":"edge-stage-a-stage-b","source":"stage-a","target":"stage-b"}]}}}}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_WeaversNotebookStrategyRunResponse_ba2ac4e88b2e"},"example":{"schema":"weavers.notebook.strategy_run.v1","version":1,"notebookKey":"strategy-11111111-1111-4111-8111-111111111111","notebookSavedAt":"2025-01-01T00:00:00.000Z","engine":"local","selectedCellIds":[],"selectedCells":[],"runId":"1","status":"example","createdAt":"2025-01-01T00:00:00.000Z","idempotentReplay":false,"message":"Explain the data used in this research."}}}},"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_WeaversNotebookStrategyRunResponse_ba2ac4e88b2e"},"example":{"schema":"weavers.notebook.strategy_run.v1","version":1,"notebookKey":"strategy-11111111-1111-4111-8111-111111111111","notebookSavedAt":"2025-01-01T00:00:00.000Z","engine":"local","selectedCellIds":[],"selectedCells":[],"runId":"1","status":"example","createdAt":"2025-01-01T00:00:00.000Z","idempotentReplay":false,"message":"Explain the data used in this research."}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5bbb7679ba88"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_5bbb7679ba88"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111/strategy-runs' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header \"X-Request-Nonce: $(openssl rand -hex 16)\" \\\n  --header \"X-Request-Timestamp: $(date +%s)\" \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/notebooks":{"get":{"operationId":"get-eureka-notebooks","tags":["notebooks"],"summary":"GET /api/eureka/notebooks","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_cdb025feb163"},"example":{"notebooks":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_962520d6af09"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/notebooks' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/notebooks/{notebookKey}":{"get":{"operationId":"get-eureka-notebooks-notebookKey","tags":["notebooks"],"summary":"GET /api/eureka/notebooks/:notebookKey","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookReadResult_2e958776a3d5"},"example":{"notebook":{"schema":"weavers.notebook.v1","version":1,"notebookKey":"strategy-11111111-1111-4111-8111-111111111111","title":"Example research","cells":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"},"source":"default","savedAt":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_962520d6af09"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"put":{"operationId":"put-eureka-notebooks-notebookKey","tags":["notebooks"],"summary":"PUT /api/eureka/notebooks/:notebookKey","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nRead the notebook first and preserve its schema, version and cell identifiers. Send the returned savedAt as expectedSavedAt when replacing a saved document; a stale value returns 409. The document's notebookKey must match the path.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Read the notebook first and preserve its schema, version and cell identifiers. Send the returned savedAt as expectedSavedAt when replacing a saved document; a stale value returns 409. The document's notebookKey must match the path.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"document":{"$ref":"#/components/schemas/Input_WeaversNotebookDocument_ef3d312af85a"},"expectedSavedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["document"],"additionalProperties":false},"example":{"document":{"schema":"weavers.notebook.v1","version":1,"notebookKey":"strategy-11111111-1111-4111-8111-111111111111","title":"Strategy 11111111 1111 4111 8111 111111111111","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","universeSource":null,"cells":[{"id":"bootstrap","kind":"bootstrap","language":"weavers-bootstrap","locked":true,"source":"# Weavers dataset bootstrap\n# Web: prepares workspace context; return to Build to inspect historical coverage.\n# Desktop: also scans local runtime, cache folders, and worker capacity.\nweavers.load_dataset_context()","status":"idle","outputs":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"},{"id":"cell-1","kind":"code","language":"python","locked":true,"strategyRunEnabled":true,"source":"# Weavers validation bridge\n# Locked entrypoint: keep strategy logic in editable helper cells.\n# Define build_signals(candles, context=None, **kwargs) and/or\n# build_policy(context=None, **kwargs) in helper cells.\ndef weavers_strategy(candles=None, context=None, **kwargs):\n    context = context or {}\n    rows = candles\n    if rows is None:\n        rows = (\n            kwargs.get('rows')\n            or kwargs.get('data')\n            or kwargs.get('market_data')\n        )\n\n    result = {}\n    if 'build_signals' in globals():\n        signal_result = build_signals(rows, context=context, **kwargs)\n        if isinstance(signal_result, dict) and any(\n            key in signal_result\n            for key in (\n                'signals',\n                'signal_search',\n                'signalSearch',\n                'predictor_search',\n                'predictorSearch',\n            )\n        ):\n            result.update(signal_result)\n        else:\n            result['signals'] = signal_result\n    if 'build_policy' in globals():\n        policy_result = build_policy(context=context, **kwargs)\n        if isinstance(policy_result, dict) and any(\n            key in policy_result\n            for key in (\n                'execution_policy',\n                'executionPolicy',\n                'policy',\n                'execution',\n            )\n        ):\n            result.update(policy_result)\n        else:\n            result['execution_policy'] = policy_result\n    return result","status":"idle","outputs":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"},{"id":"cell-2","kind":"code","language":"python","locked":false,"strategyRunEnabled":true,"source":"# Helper cell\n# Define build_signals(candles, context=None, **kwargs)\n# and/or build_policy(context=None, **kwargs) here.\n# The locked Strategy Entry Point cell calls these helpers during validation.","status":"idle","outputs":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"},{"id":"example-cell","kind":"code","language":"python","locked":false,"strategyRunEnabled":true,"source":"print('Research example')\n","status":"idle","outputs":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"}]},"expectedSavedAt":null}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookWriteResult_16a31cae3688"},"example":{"notebook":{"schema":"weavers.notebook.v1","version":1,"notebookKey":"strategy-11111111-1111-4111-8111-111111111111","title":"Example research","cells":[],"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"},"savedAt":"2025-01-01T00:00:00.000Z"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_962520d6af09"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PUT \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]},"delete":{"operationId":"delete-eureka-notebooks-notebookKey","tags":["notebooks"],"summary":"DELETE /api/eureka/notebooks/:notebookKey","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111","parameters":[{"name":"notebookKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaNotebookDeleteResult_9b7b38e3a0d0"},"example":{"notebookKey":"strategy-11111111-1111-4111-8111-111111111111","deletedAssistantThreads":1}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_962520d6af09"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request DELETE \\\n  'https://api.weavers.app/api/eureka/notebooks/strategy-11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-datasets/platform":{"post":{"operationId":"post-eureka-strategy-workspaces-strategyId-python-datasets-platform","tags":["python"],"summary":"POST /api/eureka/strategy-workspaces/:strategyId/python-datasets/platform","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-datasets/platform","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_11934b928df9"},"example":{"dataset":{"datasetVersionId":"11111111-1111-4111-8111-111111111111","strategyId":"11111111-1111-4111-8111-111111111111","format":"csv","rawSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sizeBytes":1,"metadata":{},"createdAt":"2025-01-01T00:00:00.000Z"},"preview":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e57b01359395"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_e57b01359395"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-datasets/platform' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-datasets":{"post":{"operationId":"post-eureka-strategy-workspaces-strategyId-python-datasets","tags":["python"],"summary":"POST /api/eureka/strategy-workspaces/:strategyId/python-datasets","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nUpload raw bytes with format and adjustedPrices query parameters. Maximum upload: 16 MiB. The inspector validates required columns, timestamps, prices and dataset coverage before accepting a version.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Upload raw bytes with format and adjustedPrices query parameters. Maximum upload: 16 MiB. The inspector validates required columns, timestamps, prices and dataset coverage before accepting a version.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-datasets?format=csv&adjustedPrices=unknown","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":true,"schema":{"enum":["csv","parquet"]}},{"name":"adjustedPrices","in":"query","required":true,"schema":{"enum":["adjusted","unadjusted","unknown"]}},{"name":"columnMapping","in":"query","required":false,"schema":{"type":"string","maxLength":2048,"description":"JSON-encoded column mapping understood by dataset inspection."}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary","description":"Raw CSV or Parquet bytes, not multipart form data. Maximum 16 MiB."}}}},"responses":{"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_11934b928df9"},"example":{"dataset":{"datasetVersionId":"11111111-1111-4111-8111-111111111111","strategyId":"11111111-1111-4111-8111-111111111111","format":"csv","rawSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sizeBytes":1,"metadata":{},"createdAt":"2025-01-01T00:00:00.000Z"},"preview":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e57b01359395"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_e57b01359395"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-datasets?format=csv&adjustedPrices=unknown' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/octet-stream' \\\n  --data-binary @dataset.csv"}]},"get":{"operationId":"get-eureka-strategy-workspaces-strategyId-python-datasets","tags":["python"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId/python-datasets","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-datasets","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_fdb24e53b0e4"},"example":{"datasets":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e57b01359395"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_e57b01359395"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-datasets' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-datasets/{datasetVersionId}":{"get":{"operationId":"get-eureka-strategy-workspaces-strategyId-python-datasets-datasetVersionId","tags":["python"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId/python-datasets/:datasetVersionId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-datasets/11111111-1111-4111-8111-111111111111","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"datasetVersionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_fda620c1a219"},"example":{"dataset":{"datasetVersionId":"11111111-1111-4111-8111-111111111111","strategyId":"11111111-1111-4111-8111-111111111111","format":"csv","rawSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sizeBytes":1,"metadata":{},"createdAt":"2025-01-01T00:00:00.000Z"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e57b01359395"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_e57b01359395"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-datasets/11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-datasets/{datasetVersionId}/preview":{"get":{"operationId":"get-eureka-strategy-workspaces-strategyId-python-datasets-datasetVersionId-preview","tags":["python"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId/python-datasets/:datasetVersionId/preview","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-datasets/11111111-1111-4111-8111-111111111111/preview","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"datasetVersionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_11934b928df9"},"example":{"dataset":{"datasetVersionId":"11111111-1111-4111-8111-111111111111","strategyId":"11111111-1111-4111-8111-111111111111","format":"csv","rawSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sizeBytes":1,"metadata":{},"createdAt":"2025-01-01T00:00:00.000Z"},"preview":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e57b01359395"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_e57b01359395"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-datasets/11111111-1111-4111-8111-111111111111/preview' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/python-runs/preflight":{"get":{"operationId":"get-eureka-python-runs-preflight","tags":["python"],"summary":"GET /api/eureka/python-runs/preflight","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nReadiness is computed from the saved experiment draft, current source and selected dataset.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Readiness is computed from the saved experiment draft, current source and selected dataset."],"x-example-url":"https://api.weavers.app/api/eureka/python-runs/preflight?draftId=11111111-1111-4111-8111-111111111111","parameters":[{"name":"draftId","in":"query","required":true,"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5559faf070bc"},"example":{"draftId":"11111111-1111-4111-8111-111111111111","draftRevision":1,"sourceRevision":null,"datasetVersionId":null,"preflight":{"status":"blocked","issues":[]}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9d4c9505b751"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_4c5a6725e78d"},{"$ref":"#/components/schemas/Response___object_9d4c9505b751"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/python-runs/preflight?draftId=11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/python-runs":{"post":{"operationId":"post-eureka-python-runs","tags":["python"],"summary":"POST /api/eureka/python-runs","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nRun preflight first. Explicitly set acceptDegraded only after reviewing its degraded-data reasons. 201 creates the run; 200 returns an existing idempotent result. Poll GET /api/eureka/python-runs/{runId}.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Run preflight first. Explicitly set acceptDegraded only after reviewing its degraded-data reasons. 201 creates the run; 200 returns an existing idempotent result. Poll GET /api/eureka/python-runs/{runId}.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/python-runs","parameters":[{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"draftId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"acceptDegraded":{"type":"boolean"}},"required":["draftId"],"additionalProperties":false},"example":{"draftId":"22222222-2222-4222-8222-222222222222","acceptDegraded":false}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_39333d278bcb"},"example":{"runId":"1","status":"example","created":false}}}},"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_39333d278bcb"},"example":{"runId":"1","status":"example","created":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9d4c9505b751"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_4c5a6725e78d"},{"$ref":"#/components/schemas/Response___object_9d4c9505b751"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/python-runs' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]},"get":{"operationId":"get-eureka-python-runs","tags":["python"],"summary":"GET /api/eureka/python-runs","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/python-runs","parameters":[{"name":"strategyId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e7434c56e187"},"example":{"runs":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f27d62cc88de"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9d4c9505b751"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_4c5a6725e78d"},{"$ref":"#/components/schemas/Response___object_9d4c9505b751"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/python-runs' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/python-runs/{runId}":{"get":{"operationId":"get-eureka-python-runs-runId","tags":["python"],"summary":"GET /api/eureka/python-runs/:runId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/python-runs/1","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a9758f5ed1a7"},"example":{"runId":"1","status":"example","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","errorCode":null,"errorMessage":null,"summary":{},"manifestSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","manifest":{"research":null,"source":null,"data":null,"evaluation":null,"strategy":null,"eligibility":null,"runtime":null},"artifacts":[],"events":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9d4c9505b751"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_4c5a6725e78d"},{"$ref":"#/components/schemas/Response___object_9d4c9505b751"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/python-runs/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/python-runs/{runId}/cancel":{"post":{"operationId":"post-eureka-python-runs-runId-cancel","tags":["python"],"summary":"POST /api/eureka/python-runs/:runId/cancel","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/python-runs/1/cancel","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_508ca75715eb"},"example":{"runId":"1","status":"example"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9d4c9505b751"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_4c5a6725e78d"},{"$ref":"#/components/schemas/Response___object_9d4c9505b751"}]},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/python-runs/1/cancel' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-source":{"get":{"operationId":"get-eureka-strategy-workspaces-strategyId-python-source","tags":["python"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId/python-source","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_bbf5ed3a919f"},"example":{"source":null,"revision":1}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"put":{"operationId":"put-eureka-strategy-workspaces-strategyId-python-source","tags":["python"],"summary":"PUT /api/eureka/strategy-workspaces/:strategyId/python-source","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nRead the current source first. Use its revision, or 0 when no source exists. Source validation and size limits apply; saving source does not run it.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Read the current source first. Use its revision, or 0 when no source exists. Source validation and size limits apply; saving source does not run it.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":0},"source":{"type":"string","minLength":1},"provenance":{"enum":["editor","import","template"]}},"required":["expectedRevision","source"],"additionalProperties":false},"example":{"expectedRevision":0,"source":"# Research draft\n","provenance":"editor"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_1442faa272df"},"example":{"source":{"strategyId":"11111111-1111-4111-8111-111111111111","revision":1,"source":"example","sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","provenance":"assistant","restoredFromRevision":null,"createdAt":"2025-01-01T00:00:00.000Z"},"created":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PUT \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-source/loomy-proposals/{messageId}/apply":{"post":{"operationId":"post-eureka-strategy-workspaces-strategyId-python-source-loomy-proposals-messageId-apply","tags":["python"],"summary":"POST /api/eureka/strategy-workspaces/:strategyId/python-source/loomy-proposals/:messageId/apply","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nUse the actual proposal message and current dataset version from the owned workspace. A stale proposal or changed dataset is rejected.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Use the actual proposal message and current dataset version from the owned workspace. A stale proposal or changed dataset is rejected.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/loomy-proposals/1/apply","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"messageId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"conversationId":{"type":"string","minLength":1,"maxLength":160},"currentDatasetVersionId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},{"type":"null"}]}},"required":["conversationId","currentDatasetVersionId"],"additionalProperties":false},"example":{"conversationId":"1","currentDatasetVersionId":null}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_1442faa272df"},"example":{"source":{"strategyId":"11111111-1111-4111-8111-111111111111","revision":1,"source":"example","sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","provenance":"assistant","restoredFromRevision":null,"createdAt":"2025-01-01T00:00:00.000Z"},"created":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/loomy-proposals/1/apply' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-source/assistant-proposals":{"get":{"operationId":"get-eureka-strategy-workspaces-strategyId-python-source-assistant-proposals","tags":["python"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId/python-source/assistant-proposals","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/assistant-proposals","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_20afa99ec7fb"},"example":{"proposals":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/assistant-proposals' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-source/assistant-proposals/{proposalId}":{"get":{"operationId":"get-eureka-strategy-workspaces-strategyId-python-source-assistant-proposals-proposalId","tags":["python"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId/python-source/assistant-proposals/:proposalId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/assistant-proposals/1","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"proposalId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_97782db1de49"},"example":{"proposal":{"proposalId":"1","strategyId":"11111111-1111-4111-8111-111111111111","clientId":"1","requestSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","strategyRevision":1,"baseSourceRevision":1,"baseSourceSha256":null,"datasetVersionId":null,"datasetSha256":null,"experimentDraftId":null,"experimentDraftRevision":null,"sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","reason":"example","status":"pending","appliedSourceRevision":null,"createdAt":"2025-01-01T00:00:00.000Z","decidedAt":null,"source":"example"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/assistant-proposals/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-source/assistant-proposals/{proposalId}/apply":{"post":{"operationId":"post-eureka-strategy-workspaces-strategyId-python-source-assistant-proposals-proposalId-apply","tags":["python"],"summary":"POST /api/eureka/strategy-workspaces/:strategyId/python-source/assistant-proposals/:proposalId/apply","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nRead and review the proposal before applying. Supply the workspace's current dataset version (or null when no dataset is selected).\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Read and review the proposal before applying. Supply the workspace's current dataset version (or null when no dataset is selected).","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/assistant-proposals/1/apply","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"proposalId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currentDatasetVersionId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},{"type":"null"}]}},"required":["currentDatasetVersionId"],"additionalProperties":false},"example":{"currentDatasetVersionId":null}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___type_1442faa272df"},{"$ref":"#/components/schemas/Response___object_3077269f3233"}]},"example":{"source":{"strategyId":"11111111-1111-4111-8111-111111111111","revision":1,"source":"example","sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","provenance":"assistant","restoredFromRevision":null,"createdAt":"2025-01-01T00:00:00.000Z"},"created":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/assistant-proposals/1/apply' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-source/assistant-proposals/{proposalId}/reject":{"post":{"operationId":"post-eureka-strategy-workspaces-strategyId-python-source-assistant-proposals-proposalId-reject","tags":["python"],"summary":"POST /api/eureka/strategy-workspaces/:strategyId/python-source/assistant-proposals/:proposalId/reject","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/assistant-proposals/1/reject","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"proposalId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7e54d88e702e"},"example":{"status":"rejected"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/assistant-proposals/1/reject' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-source/versions":{"get":{"operationId":"get-eureka-strategy-workspaces-strategyId-python-source-versions","tags":["python"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId/python-source/versions","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/versions","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_7f09d39df699"},"example":{"revisions":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/versions' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-source/versions/{revision}":{"get":{"operationId":"get-eureka-strategy-workspaces-strategyId-python-source-versions-revision","tags":["python"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId/python-source/versions/:revision","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/versions/1","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"revision","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5e5c2af0e980"},"example":{"source":{"strategyId":"11111111-1111-4111-8111-111111111111","revision":1,"source":"example","sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","provenance":"assistant","restoredFromRevision":null,"createdAt":"2025-01-01T00:00:00.000Z"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/versions/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/strategy-workspaces/{strategyId}/python-source/versions/{revision}/restore":{"post":{"operationId":"post-eureka-strategy-workspaces-strategyId-python-source-versions-revision-restore","tags":["python"],"summary":"POST /api/eureka/strategy-workspaces/:strategyId/python-source/versions/:revision/restore","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nThe path revision identifies the historical version. expectedRevision identifies the current version; restoring creates a new revision.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","The path revision identifies the historical version. expectedRevision identifies the current version; restoring creates a new revision.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/versions/1/restore","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"revision","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":0}},"required":["expectedRevision"],"additionalProperties":false},"example":{"expectedRevision":0}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_1442faa272df"},"example":{"source":{"strategyId":"11111111-1111-4111-8111-111111111111","revision":1,"source":"example","sourceSha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","provenance":"assistant","restoredFromRevision":null,"createdAt":"2025-01-01T00:00:00.000Z"},"created":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_5cd7defd72cb"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source/versions/1/restore' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/research/catalog":{"get":{"operationId":"get-eureka-research-catalog","tags":["workspaces"],"summary":"GET /api/eureka/research/catalog","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/research/catalog","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_4738cff02a50"},"example":{"markets":[],"capturedAt":"2025-01-01T00:00:00.000Z"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"502":{"description":"Dependency failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_477c9dffed78"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/research/catalog' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/research/inspection":{"get":{"operationId":"get-eureka-research-inspection","tags":["workspaces"],"summary":"GET /api/eureka/research/inspection","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/research/inspection?provider=github&startDate=2025-01-01&endDate=2025-06-30&timeframe=example","parameters":[{"name":"nicheId","in":"query","required":false,"schema":{"type":"string"}},{"name":"nicheKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"provider","in":"query","required":true,"schema":{"type":"string"}},{"name":"source","in":"query","required":false,"schema":{"type":"string"}},{"name":"country","in":"query","required":false,"schema":{"type":"string"}},{"name":"geography","in":"query","required":false,"schema":{"type":"string"}},{"name":"instrumentType","in":"query","required":false,"schema":{"type":"string"}},{"name":"theme","in":"query","required":false,"schema":{"type":"string"}},{"name":"sectors","in":"query","required":false,"schema":{"type":"string"}},{"name":"exchanges","in":"query","required":false,"schema":{"type":"string"}},{"name":"themes","in":"query","required":false,"schema":{"type":"string"}},{"name":"startDate","in":"query","required":true,"schema":{"type":"string"}},{"name":"endDate","in":"query","required":true,"schema":{"type":"string"}},{"name":"timeframe","in":"query","required":true,"schema":{"type":"string"}},{"name":"equitiesOnly","in":"query","required":false,"schema":{"type":"string"}},{"name":"excludeEtfs","in":"query","required":false,"schema":{"type":"string"}},{"name":"excludeIndiaEtfs","in":"query","required":false,"schema":{"type":"string"}},{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"benchmarkSymbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","required":false,"schema":{"type":"string"}},{"name":"overviewOnly","in":"query","required":false,"schema":{"type":"string"}},{"name":"predictor","in":"query","required":false,"schema":{"type":"string"}},{"name":"previewOnly","in":"query","required":false,"schema":{"type":"string"}},{"name":"predictorOnly","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ResearchInspection_752fc40a18af"},"example":{"dataset":{"provider":"alpaca","startDate":"2025-01-01","endDate":"2025-06-30","timeframe":"1D","nicheId":1,"nicheKey":"example","equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false},"inspectedAt":"2025-01-01T00:00:00.000Z","assets":[],"assetCount":1,"assetsTruncated":false,"symbol":null,"candles":[],"rejectedRows":1,"candlesTruncated":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_477c9dffed78"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"502":{"description":"Dependency failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_477c9dffed78"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/research/inspection?provider=github&startDate=2025-01-01&endDate=2025-06-30&timeframe=example' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs/{runId}/annotation":{"get":{"operationId":"get-optimisation-runs-runId-annotation","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId/annotation","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/annotation","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_ffba4abc3631"},"example":{"annotation":{"runId":"1","researchNotes":"example","validationPlan":{"benchmark":"example","costsAndRegimes":"example","reviewNote":"example"},"revision":1,"updatedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_28fda9aec344"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_28fda9aec344"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1/annotation' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"put":{"operationId":"put-optimisation-runs-runId-annotation","tags":["optimisation"],"summary":"PUT /api/optimisation/runs/:runId/annotation","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nUse revision 0 for the first annotation, otherwise the latest returned revision. All three validationPlan text fields are required; they are user-authored notes.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Use revision 0 for the first annotation, otherwise the latest returned revision. All three validationPlan text fields are required; they are user-authored notes.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/annotation","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedRevision":{"type":"number"},"researchNotes":{"type":"string"},"validationPlan":{"$ref":"#/components/schemas/Input_EurekaRunValidationPlan_2f3bdbd0b754"}},"additionalProperties":false,"required":["expectedRevision","researchNotes","validationPlan"]},"example":{"expectedRevision":0,"researchNotes":"Compare the held-out window with the training window.","validationPlan":{"benchmark":"Compare with the selected benchmark.","costsAndRegimes":"Review costs across market regimes.","reviewNote":"Inspect the resulting evidence before deciding."}}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_ffba4abc3631"},"example":{"annotation":{"runId":"1","researchNotes":"example","validationPlan":{"benchmark":"example","costsAndRegimes":"example","reviewNote":"example"},"revision":1,"updatedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_28fda9aec344"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_28fda9aec344"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PUT \\\n  'https://api.weavers.app/api/optimisation/runs/1/annotation' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/saved-research":{"get":{"operationId":"get-eureka-saved-research","tags":["workspaces"],"summary":"GET /api/eureka/saved-research","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/saved-research","parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_eeb298ec9ac1"},"example":{"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_17fb41a22a72"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_17fb41a22a72"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/saved-research' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"put":{"operationId":"put-eureka-saved-research","tags":["workspaces"],"summary":"PUT /api/eureka/saved-research","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/saved-research","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"referenceId":{"type":"string"},"label":{"type":"string"}},"required":["kind","referenceId","label"],"additionalProperties":false},"example":{"kind":"example","referenceId":"1","label":"Example research"}}}},"responses":{"204":{"description":"Successful deletion; no response body."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_17fb41a22a72"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_17fb41a22a72"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_17fb41a22a72"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PUT \\\n  'https://api.weavers.app/api/eureka/saved-research' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]},"delete":{"operationId":"delete-eureka-saved-research","tags":["workspaces"],"summary":"DELETE /api/eureka/saved-research","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/saved-research","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"referenceId":{"type":"string"}},"required":["kind","referenceId"],"additionalProperties":false},"example":{"kind":"example","referenceId":"1"}}}},"responses":{"204":{"description":"Successful deletion; no response body."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_17fb41a22a72"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_17fb41a22a72"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request DELETE \\\n  'https://api.weavers.app/api/eureka/saved-research' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/strategy-components":{"get":{"operationId":"get-eureka-strategy-components","tags":["notebooks"],"summary":"GET /api/eureka/strategy-components","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-components","parameters":[{"name":"componentType","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_1fcadcfb0f57"},"example":{"components":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_8d0c6e3e97a1"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-components' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/notebooks/executions/{jobId}/strategy-components":{"post":{"operationId":"post-eureka-notebooks-executions-jobId-strategy-components","tags":["notebooks"],"summary":"POST /api/eureka/notebooks/executions/:jobId/strategy-components","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nThe manifest must refer to the completed execution and its actual cell/source hash. Registering a component does not execute it.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","The manifest must refer to the completed execution and its actual cell/source hash. Registering a component does not execute it.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/notebooks/executions/1/strategy-components","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.strategy_component.v1"},"version":{"type":"number","const":1},"componentType":{"enum":["stage_a","stage_b"]},"componentKey":{"type":"string"},"label":{"type":"string"},"sourceKind":{"type":"string","const":"notebook_component"},"notebookKey":{"type":"string"},"executionJobId":{"anyOf":[{"type":"null"},{"type":"string"}]},"cellId":{"type":"string"},"sourceSha256":{"type":"string"},"createdAt":{"type":"string"},"interface":{"anyOf":[{"$ref":"#/components/schemas/Input_WeaversStageAComponentInterface_f9d100b3c48c"},{"$ref":"#/components/schemas/Input_WeaversStageBComponentInterface_800bf04c5ecc"}]},"files":{"type":"array","items":{"$ref":"#/components/schemas/Input_WeaversStrategyComponentFile_cac67495bcf0"}},"metrics":{"$ref":"#/components/schemas/Input_Record_4eeb28d96cf7"},"notes":{"type":"string"}},"required":["schema","version","componentType","componentKey","label","sourceKind","notebookKey","executionJobId","cellId","sourceSha256","createdAt","interface","files"],"additionalProperties":false},"example":{"schema":"weavers.strategy_component.v1","version":1,"componentType":"stage_a","componentKey":"example-signal","label":"Example signal","sourceKind":"notebook_component","notebookKey":"strategy-11111111-1111-4111-8111-111111111111","executionJobId":"notebook-example","cellId":"example-cell","sourceSha256":"51a5983fa1333c582c710ed6131d2bc0d641866150cf23001603a4ae0685b173","createdAt":"2025-01-01T00:00:00.000Z","interface":{"kind":"stage_a","input":"weavers.ohlcv_panel.v1","output":"weavers.stage_a_signal_frame.v1","timestampColumn":"timestamp","symbolColumn":"symbol","signalColumn":"signal"},"files":[{"role":"source","path":"signal.py","mediaType":"text/x-python","bytes":26}]}}}},"responses":{"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_40df963d1aef"},"example":{"component":{"componentType":"stage_a","componentKey":"example","label":"Example research","sourceKind":"weavers_preset","trustStatus":"preset","lifecycleStatus":"rejected","executionJobId":null,"sourceSha256":null,"artifact":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_8d0c6e3e97a1"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/notebooks/executions/1/strategy-components' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/strategy-workspaces":{"get":{"operationId":"get-eureka-strategy-workspaces","tags":["workspaces"],"summary":"GET /api/eureka/strategy-workspaces","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaStrategyList_b88e95964ead"},"example":{"strategies":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"post":{"operationId":"post-eureka-strategy-workspaces","tags":["workspaces"],"summary":"POST /api/eureka/strategy-workspaces","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nCreate an owned workspace with a UUID v4. Omit draft to use defaults. A draft is limited to 256 KiB and 10,000 ticker symbols; the account workspace limit is 20.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Create an owned workspace with a UUID v4. Omit draft to use defaults. A draft is limited to 256 KiB and 10,000 ticker symbols; the account workspace limit is 20.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"strategyId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"name":{"type":"string","minLength":1,"maxLength":120},"draft":{"$ref":"#/components/schemas/Input_EurekaStrategyDraft_fe3fed0bc3dd"}},"required":["strategyId"],"additionalProperties":false},"example":{"strategyId":"11111111-1111-4111-8111-111111111111","name":"Momentum research"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d68fdea5f165"},"example":{"strategy":{"strategyId":"11111111-1111-4111-8111-111111111111","name":"Example research","revision":1,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","draft":{"schema":"weavers.strategy-draft.v1","tickerSymbols":[],"configuration":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}}}}}}}},"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d68fdea5f165"},"example":{"strategy":{"strategyId":"11111111-1111-4111-8111-111111111111","name":"Example research","revision":1,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","draft":{"schema":"weavers.strategy-draft.v1","tickerSymbols":[],"configuration":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}}}}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/strategy-workspaces/{strategyId}":{"get":{"operationId":"get-eureka-strategy-workspaces-strategyId","tags":["workspaces"],"summary":"GET /api/eureka/strategy-workspaces/:strategyId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d68fdea5f165"},"example":{"strategy":{"strategyId":"11111111-1111-4111-8111-111111111111","name":"Example research","revision":1,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","draft":{"schema":"weavers.strategy-draft.v1","tickerSymbols":[],"configuration":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}}}}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"put":{"operationId":"put-eureka-strategy-workspaces-strategyId","tags":["workspaces"],"summary":"PUT /api/eureka/strategy-workspaces/:strategyId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nRead the workspace first. expectedRevision must match its current revision; stale writes return 409. Name is 1–120 characters; draft is limited to 256 KiB.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Read the workspace first. expectedRevision must match its current revision; stale writes return 409. Name is 1–120 characters; draft is limited to 256 KiB.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedRevision":{"type":"number"},"name":{"type":"string"},"draft":{"$ref":"#/components/schemas/Input_EurekaStrategyDraft_fe3fed0bc3dd"}},"required":["expectedRevision"],"additionalProperties":false},"example":{"expectedRevision":1,"name":"Updated research project"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d68fdea5f165"},"example":{"strategy":{"strategyId":"11111111-1111-4111-8111-111111111111","name":"Example research","revision":1,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","draft":{"schema":"weavers.strategy-draft.v1","tickerSymbols":[],"configuration":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}}}}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PUT \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]},"delete":{"operationId":"delete-eureka-strategy-workspaces-strategyId","tags":["workspaces"],"summary":"DELETE /api/eureka/strategy-workspaces/:strategyId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"204":{"description":"Successful deletion; no response body."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request DELETE \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/eureka/strategy-workspaces/{strategyId}/archive":{"put":{"operationId":"put-eureka-strategy-workspaces-strategyId-archive","tags":["workspaces"],"summary":"PUT /api/eureka/strategy-workspaces/:strategyId/archive","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/archive","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"archived":{"type":"boolean"}},"required":["archived"],"additionalProperties":false},"example":{"archived":false}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d68fdea5f165"},"example":{"strategy":{"strategyId":"11111111-1111-4111-8111-111111111111","name":"Example research","revision":1,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","draft":{"schema":"weavers.strategy-draft.v1","tickerSymbols":[],"configuration":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}}}}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18e1d7f7add5"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PUT \\\n  'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/archive' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/ticker-pool/catalog":{"get":{"operationId":"get-eureka-ticker-pool-catalog","tags":["workspaces"],"summary":"GET /api/eureka/ticker-pool/catalog","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/ticker-pool/catalog","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaTickerCatalog_87d8c6e3bb9e"},"example":{"items":[],"allSymbols":[],"filteredSymbols":[],"industries":[],"total":1,"filteredTotal":1,"offset":1,"pageSize":1,"asOf":"example"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_101de8318e56"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"502":{"description":"Dependency failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bf0a11ba7afa"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/ticker-pool/catalog' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/ticker-pool/previews":{"get":{"operationId":"get-eureka-ticker-pool-previews","tags":["workspaces"],"summary":"GET /api/eureka/ticker-pool/previews","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/ticker-pool/previews?symbols=AAPL%2CMSFT","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated canonical ticker symbols."}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d0513b7db9b1"},"example":{"previews":{}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_101de8318e56"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"502":{"description":"Dependency failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bf0a11ba7afa"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/ticker-pool/previews?symbols=AAPL%2CMSFT' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/human-support/conversations/current":{"get":{"operationId":"get-human-support-conversations-current","tags":["support"],"summary":"GET /api/human-support/conversations/current","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/human-support/conversations/current","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_HumanSupportConversationBundle_1f24a55c9f5b"},"example":{"conversation":null,"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bf087a58fc99"},"example":{"error":"example","code":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bf087a58fc99"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/human-support/conversations/current' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/human-support/conversations/{conversationId}/messages":{"get":{"operationId":"get-human-support-conversations-conversationId-messages","tags":["support"],"summary":"GET /api/human-support/conversations/:conversationId/messages","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/human-support/conversations/1/messages","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"afterId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_HumanSupportConversationBundle_1f24a55c9f5b"},"example":{"conversation":null,"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_bf087a58fc99"}]},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bf087a58fc99"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bf087a58fc99"},"example":{"error":"example","code":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bf087a58fc99"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/human-support/conversations/1/messages' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/human-support/conversations/current/messages":{"post":{"operationId":"post-human-support-conversations-current-messages","tags":["support"],"summary":"POST /api/human-support/conversations/current/messages","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/human-support/conversations/current/messages","parameters":[{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false},"example":{"message":"Explain the data used in this research."}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_c9e4fc5da512"},"example":{"conversation":{"id":"1","userId":1,"title":"Example research","status":"waiting_for_human","preview":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","lastUserMessageAt":null,"lastAgentMessageAt":null,"claimedAt":null,"resolvedAt":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","metadata":{}},"message":{"id":"1","conversationId":"1","senderRole":"user","senderUserId":null,"content":"Explain the data used in this research.","metadata":{},"createdAt":"2025-01-01T00:00:00.000Z"},"createdConversation":false}}}},"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_c9e4fc5da512"},"example":{"conversation":{"id":"1","userId":1,"title":"Example research","status":"waiting_for_human","preview":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","lastUserMessageAt":null,"lastAgentMessageAt":null,"claimedAt":null,"resolvedAt":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","metadata":{}},"message":{"id":"1","conversationId":"1","senderRole":"user","senderUserId":null,"content":"Explain the data used in this research.","metadata":{},"createdAt":"2025-01-01T00:00:00.000Z"},"createdConversation":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_bf087a58fc99"}]},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bf087a58fc99"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bf087a58fc99"},"example":{"error":"example","code":"example"}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bf087a58fc99"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/human-support/conversations/current/messages' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/idea-assistant/messages":{"post":{"operationId":"post-eureka-idea-assistant-messages","tags":["assistants"],"summary":"POST /api/eureka/idea-assistant/messages","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nstage is signal-predictor or execution-policy. History contains at most 12 messages; message is at most 4,000 characters. The current HTTP boundary does not accept runId; omit it even though the shared client type declares it.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","stage is signal-predictor or execution-policy. History contains at most 12 messages; message is at most 4,000 characters. The current HTTP boundary does not accept runId; omit it even though the shared client type declares it.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/idea-assistant/messages","parameters":[{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"stage":{"enum":["signal-predictor","execution-policy"]},"message":{"type":"string"},"history":{"type":"array","items":{"$ref":"#/components/schemas/Input_IdeaAssistantMessage_b62b86ef035e"}},"draft":{"$ref":"#/components/schemas/Input_OptimisationCreateRequest_e76df567da71"}},"required":["stage","message","history","draft"],"additionalProperties":false},"example":{"stage":"signal-predictor","message":"Explain the current signal configuration.","history":[],"draft":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":6,"startDate":"2022-08-01","endDate":"2026-02-18","equitiesOnly":true,"excludeEtfs":true,"excludeIndiaEtfs":true,"stageATrials":100,"stageA2Mode":"disabled","stageA2Trials":100,"stageAToA2Threshold":0.5,"stageA2HorizonBars":5,"stageA2LabelMinUpPct":0.01,"stageA2PredictorFeaturesCsv":"source_stage_a_p_hat,intraday_return_1,intraday_range_pct,intraday_close_pos_session,session_progress","stageBTrials":200,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":5,"lookbackYears":3,"trainMonths":24,"valMonths":1,"stepMonths":1,"purgeDays":7,"holdoutMonths":6,"holdoutStartDate":null,"horizonBars":5,"labelMinUpPct":0.01,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"gamma_atr_norm,atr_slope_14,atr_14,close_pos_20,macd_delta_ma,rsi_delta_ma,wavelet_curvature","stageADecisionThreshold":0.5,"entryFilters":null,"stageALearningRateMin":0.0001,"stageALearningRateMax":0.05,"stageAL2Min":1e-7,"stageAL2Max":0.1,"stageAEpochsMin":100,"stageAEpochsMax":1200,"stageAPosWeightMin":1,"stageAPosWeightMax":8,"tpMin":0.0005,"tpMax":0.08,"slMin":0.0003,"slMax":0.08,"reserveCashPctMin":0.2,"reserveCashPctMax":0.2,"optimizeProbThreshold":true,"probThresholdMin":0.68,"probThresholdMax":0.75,"executionMode":"capital","executionBrokerId":"none","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":5000,"riskPerTradePct":0.02,"maxPositionPctEquity":0.05,"maxGrossExposurePctEquity":0.5,"allowFractionalShares":true,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":2,"halfSpreadBps":0,"borrowBpsPerBar":0,"minTrades":30,"maxDrawdown":0.25,"drawdownGateMetric":"max_drawdown_stitched","maxSymbolConcentration":0.25,"minRiskAdjusted":0,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":0.25,"lambdaTail":0.75,"lambdaDrawdown":1,"lambdaConcentration":0.5,"lambdaTurnover":0.1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":701,"stageBSeedBase":1701},"executionPlan":{"mode":"stage_a_to_b","stageASourceRunId":null,"stageAComponent":{"sourceKind":"weavers_preset","componentType":"stage_a","componentKey":"weavers.tp_sl.stage_a.xgb.v1"},"stageBComponent":{"sourceKind":"weavers_preset","componentType":"stage_b","componentKey":"weavers.tp_sl.stage_b.nsga2.v1"},"stageAUniverseSource":{"type":"base"},"stageADataSelectors":null,"canvas":{"version":1,"nodes":[{"id":"stage-a","kind":"stage_a_trainer","x":56,"y":84},{"id":"stage-b-entry-gate","kind":"stage_b_entry_gate","x":312,"y":84},{"id":"stage-b-feasibility-gate","kind":"stage_b_feasibility_gate","x":568,"y":84},{"id":"stage-b","kind":"stage_b_optimizer","x":824,"y":84}],"edges":[{"id":"edge-stage-a-stage-b","source":"stage-a","target":"stage-b"}]}}}}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_IdeaAssistantTurnResponse_8909af5284f3"},"example":{"kind":"propose","message":"Explain the data used in this research.","changes":[],"facts":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_dfc2d62674e4"}]},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dfc2d62674e4"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dfc2d62674e4"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dfc2d62674e4"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/idea-assistant/messages' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/knowledge-assistant/conversations":{"post":{"operationId":"post-knowledge-assistant-conversations","tags":["assistants"],"summary":"POST /api/knowledge-assistant/conversations","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/knowledge-assistant/conversations","parameters":[{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ChatConversationRecord_cd30e666a537"},"example":{"id":"1","userId":1,"title":"Example research","status":"active","modelId":"1","contextSummary":"example","summaryUpdatedAt":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","preview":null,"messageCount":1,"metadata":{}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_81561cc9ce34"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_35743f74425a"},"example":{"error":"example","code":"example","retryable":false}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_d69e571c65cd"},"example":{"error":"example","code":"conversation_busy","retryable":false}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/knowledge-assistant/conversations' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]},"get":{"operationId":"get-knowledge-assistant-conversations","tags":["assistants"],"summary":"GET /api/knowledge-assistant/conversations","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/knowledge-assistant/conversations","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"beforeId","in":"query","required":false,"schema":{"type":"string"}},{"name":"beforeLastMessageAt","in":"query","required":false,"schema":{"type":"string"}},{"name":"includeArchived","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_Object_0cbe6896d3b6"},"example":{"items":[],"nextCursor":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_d69e571c65cd"},"example":{"error":"example","code":"conversation_busy","retryable":false}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/knowledge-assistant/conversations' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/knowledge-assistant/conversations/{conversationId}/messages":{"get":{"operationId":"get-knowledge-assistant-conversations-conversationId-messages","tags":["assistants"],"summary":"GET /api/knowledge-assistant/conversations/:conversationId/messages","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/knowledge-assistant/conversations/1/messages","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"beforeId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ChatHistoryPage_f07f5cb397b5"},"example":{"items":[],"nextCursor":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_d69e571c65cd"},"example":{"error":"example","code":"conversation_busy","retryable":false}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/knowledge-assistant/conversations/1/messages' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/knowledge-assistant/conversations/{conversationId}":{"patch":{"operationId":"patch-knowledge-assistant-conversations-conversationId","tags":["assistants"],"summary":"PATCH /api/knowledge-assistant/conversations/:conversationId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/knowledge-assistant/conversations/1","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"status":{"type":"string"}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ChatConversationRecord_cd30e666a537"},"example":{"id":"1","userId":1,"title":"Example research","status":"active","modelId":"1","contextSummary":"example","summaryUpdatedAt":null,"lastMessageAt":"2025-01-01T00:00:00.000Z","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","preview":null,"messageCount":1,"metadata":{}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_81561cc9ce34"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_35743f74425a"},"example":{"error":"example","code":"example","retryable":false}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_d69e571c65cd"},"example":{"error":"example","code":"conversation_busy","retryable":false}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PATCH \\\n  'https://api.weavers.app/api/knowledge-assistant/conversations/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/knowledge-assistant/requests/{requestKey}":{"get":{"operationId":"get-knowledge-assistant-requests-requestKey","tags":["assistants"],"summary":"GET /api/knowledge-assistant/requests/:requestKey","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/knowledge-assistant/requests/example","parameters":[{"name":"requestKey","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___type_e556260b78e2"},{"$ref":"#/components/schemas/Response___type_7e137313d90d"},{"$ref":"#/components/schemas/Response___type_508ae3b043b8"}]},"example":{"status":"processing","requestKey":"example"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_81561cc9ce34"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_d69e571c65cd"},"example":{"error":"example","code":"conversation_busy","retryable":false}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/knowledge-assistant/requests/example' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/knowledge-assistant/messages":{"post":{"operationId":"post-knowledge-assistant-messages","tags":["assistants"],"summary":"POST /api/knowledge-assistant/messages","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/knowledge-assistant/messages","parameters":[{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"conversationId":{"type":"string"},"message":{"type":"string"},"responseMode":{"type":"string","enum":["answer","document_draft"]}},"required":["conversationId","message","responseMode"],"additionalProperties":false},"example":{"conversationId":"1","message":"Explain the data used in this research.","responseMode":"answer"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_AssistantSendResult_b03684a902a0"},"example":{"model":"example","answer":"example","responseMode":"answer","retrievalPlanHash":"example","sources":[],"conversationId":"1","userMessage":{"id":"1","conversationId":"1","role":"user","content":"Explain the data used in this research.","toolName":null,"toolCallId":null,"metadata":{},"promptTokens":1,"completionTokens":1,"totalTokens":1,"latencyMs":null,"errorCode":null,"createdAt":"2025-01-01T00:00:00.000Z"},"assistantMessage":{"id":"1","conversationId":"1","role":"user","content":"Explain the data used in this research.","toolName":null,"toolCallId":null,"metadata":{},"promptTokens":1,"completionTokens":1,"totalTokens":1,"latencyMs":null,"errorCode":null,"createdAt":"2025-01-01T00:00:00.000Z"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_81561cc9ce34"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_d69e571c65cd"},"example":{"error":"example","code":"conversation_busy","retryable":false}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/knowledge-assistant/messages' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/knowledge-assistant/proposals/{conversationId}/{messageId}":{"get":{"operationId":"get-knowledge-assistant-proposals-conversationId-messageId","tags":["assistants"],"summary":"GET /api/knowledge-assistant/proposals/:conversationId/:messageId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/knowledge-assistant/proposals/1/1?scopeKey=example","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"messageId","in":"path","required":true,"schema":{"type":"string"}},{"name":"scopeKey","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_StrategyProposalPrefill_30dd9788155f"},"example":{"conversationId":"1","messageId":"1","title":"Example research","content":"Explain the data used in this research.","responseMode":"document_draft","sources":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_d69e571c65cd"},"example":{"error":"example","code":"conversation_busy","retryable":false}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/knowledge-assistant/proposals/1/1?scopeKey=example' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/market-intelligence/channel-board":{"get":{"operationId":"get-market-intelligence-channel-board","tags":["market-data"],"summary":"GET /api/market-intelligence/channel-board","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/market-intelligence/channel-board","parameters":[{"name":"day","in":"query","required":false,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response_ChannelBoardResponse_c4c1e65f2a02"}]},"example":{"run":null,"gates":{"r2Min":1,"inBandMin":1,"minPoints":1},"channels":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_59d4d3defef2"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_59d4d3defef2"}]},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/market-intelligence/channel-board'"}]}},"/api/me":{"get":{"operationId":"get-me","tags":["account"],"summary":"GET /api/me","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_UserProfileDTO_6891e42bf3e9"},"example":{"id":1,"displayName":"Example research","coins":1,"createdAt":"2025-01-01T00:00:00.000Z"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"patch":{"operationId":"patch-me","tags":["account"],"summary":"PATCH /api/me","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/me","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":80},"avatarUrl":{"anyOf":[{"type":"string","maxLength":600000,"description":"An uploaded image data URL; arbitrary external image URLs are not accepted."},{"type":"null"}]}},"required":[],"additionalProperties":false,"minProperties":1},"example":{"displayName":"Example developer"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_UserProfileDTO_6891e42bf3e9"},"example":{"id":1,"displayName":"Example research","coins":1,"createdAt":"2025-01-01T00:00:00.000Z"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_cd396428aeb6"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_cd396428aeb6"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PATCH \\\n  'https://api.weavers.app/api/me' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/me/timezone":{"post":{"operationId":"post-me-timezone","tags":["account"],"summary":"POST /api/me/timezone","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/me/timezone","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"timezone":{"type":"string"}},"required":["timezone"],"additionalProperties":false},"example":{"timezone":"example"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_4cb717f68ce0"},"example":{"status":"updated","timezone":"example","lockedUntil":"example","cooldownHours":1}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_cd396428aeb6"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_4be69ee46bab"},"example":{"error":"example","lockedUntil":"example","cooldownHours":1,"timezone":"example"}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/me/timezone' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/me/heartbeat":{"post":{"operationId":"post-me-heartbeat","tags":["account"],"summary":"POST /api/me/heartbeat","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/me/heartbeat","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string"},"active":{"type":"boolean"}},"required":["sessionId"],"additionalProperties":false},"example":{"sessionId":"1"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7cea1d879698"},"example":{"status":"example","activity":{"localDate":"2025-01-01","activeSeconds":1,"addedSeconds":1,"thresholdSeconds":1,"awarded":false,"reward":1,"coinBalance":null},"dailyLogin":null,"streak":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/me/heartbeat' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/me/backtests":{"get":{"operationId":"get-me-backtests","tags":["account"],"summary":"GET /api/me/backtests","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/backtests","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestSummaryDTO_18d4815d8be6"}},"example":[]}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/backtests' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/me/interactions":{"get":{"operationId":"get-me-interactions","tags":["account"],"summary":"GET /api/me/interactions","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/interactions","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_UserInteractionsDTO_22c72218479d"},"example":{"saved":[],"liked":[],"shared":[],"copied":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_cd396428aeb6"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/interactions' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/me/coins":{"get":{"operationId":"get-me-coins","tags":["account"],"summary":"GET /api/me/coins","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/coins","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_c0d15fb35e1f"},"example":{"balance":1,"wallets":{"earned":1,"promo":1,"purchased":1,"total":1},"ledger":[],"shareCap":{"cap":1,"used":1,"remaining":1,"timezone":"example","localDate":"2025-01-01","resetsAt":null},"onboarding":{"completedAt":null,"reward":1},"premium":{"status":"active","hasPremiumAccess":false,"tier":null,"provider":null,"stipendCredits":1,"currentPeriodStart":null,"currentPeriodEnd":null,"canceledAt":null,"stipendAwardedNow":false,"stipendAmountAwarded":1},"sandboxEnabled":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_cd396428aeb6"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/coins' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/me/onboarding/complete":{"post":{"operationId":"post-me-onboarding-complete","tags":["account"],"summary":"POST /api/me/onboarding/complete","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/me/onboarding/complete","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OnboardingCompletionResult_0f594edf7b38"},"example":{"status":"completed","completedAt":null,"reward":1}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_cd396428aeb6"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_cd396428aeb6"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/me/onboarding/complete' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/niches":{"get":{"operationId":"get-niches","tags":["market-data"],"summary":"GET /api/niches","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/niches","parameters":[{"name":"regime","in":"query","required":false,"schema":{"type":"string"}},{"name":"assetType","in":"query","required":false,"schema":{"type":"string"}},{"name":"country","in":"query","required":false,"schema":{"type":"string"}},{"name":"exchange","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string","pattern":"^[1-9][0-9]{0,8}$","description":"Defaults to 200; values above 500 are capped at 500."}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7e815481d794"},"example":{"niches":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f6db36c63b70"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f6db36c63b70"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/niches'"}]}},"/api/niches/{nicheKey}":{"get":{"operationId":"get-niches-nicheKey","tags":["market-data"],"summary":"GET /api/niches/:nicheKey","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/niches/example","parameters":[{"name":"nicheKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"enum":["sample_depth","deflated_sharpe","raw_sharpe","paper_consistency","certified_at"]}},{"name":"direction","in":"query","required":false,"schema":{"enum":["asc","desc"]}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_0446b5a17102"},"example":{"niche":{"nicheId":1,"nicheKey":null,"displayName":"Example research","source":"example","visibility":"example","targetRegime":null,"membershipKind":"static","assetType":null,"countryCode":null,"exchange":null,"certifiedCount":1,"liveCount":1,"medianDailyDollarVolume":null,"realizedVolatility":null,"crossSectionalDispersion":null,"historyDepthDays":null,"pricedConstituentCount":null,"metricsAsOfDate":null,"themeTags":[],"description":null,"certifiedDefinition":"example","sort":{"key":"sample_depth","direction":"asc"},"certifiedStrategies":[],"reference":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_106739f11486"},{"$ref":"#/components/schemas/Response___object_27aa2c7d73d2"},{"$ref":"#/components/schemas/Response___object_812c665429da"}]},"example":{"error":"niche_key_required"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f6db36c63b70"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f6db36c63b70"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/niches/example'"}]}},"/api/notifications":{"get":{"operationId":"get-notifications","tags":["support"],"summary":"GET /api/notifications","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/notifications","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_NotificationList_ae462291b59a"},"example":{"items":[],"unreadCount":1}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_ae8a7d289ca3"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/notifications' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/notifications/read":{"post":{"operationId":"post-notifications-read","tags":["support"],"summary":"POST /api/notifications/read","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nOmitting ids, sending an empty array, or providing no valid positive numeric IDs marks all of your unread notifications as read. Use a nonempty array of positive numbers to target specific notifications.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Omitting ids, sending an empty array, or providing no valid positive numeric IDs marks all of your unread notifications as read. Use a nonempty array of positive numbers to target specific notifications.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/notifications/read","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"integer","minimum":1}}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b0490d48b379"},"example":{"status":"example","updated":1}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_ae8a7d289ca3"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/notifications/read' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/optimisation/compute":{"get":{"operationId":"get-optimisation-compute","tags":["optimisation"],"summary":"GET /api/optimisation/compute","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/compute","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_3b6a7b173c04"},{"$ref":"#/components/schemas/Response___object_f5a4214328b3"}]},"example":{"enabled":false,"capacityAvailable":false,"acceleratedAvailable":false,"twigsPerVcpuHour":1,"twigsPerGiBHour":1,"balance":1,"includedMonthlyVcpuHours":1,"includedRemainingVcpuHours":1,"includedResetsAt":"2025-01-01T00:00:00.000Z","referralCode":null,"referralReward":1}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_138f3e7d30a0"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/compute' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs":{"get":{"operationId":"get-optimisation-runs","tags":["optimisation"],"summary":"GET /api/optimisation/runs","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/runs","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"experimentKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"scope","in":"query","required":false,"schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationRunListResult_5a5856c8a078"},"example":{"items":[],"nextCursor":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"post":{"operationId":"post-optimisation-runs","tags":["optimisation"],"summary":"POST /api/optimisation/runs","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nRun preflight with the same configuration before launch. Omitted fields use server defaults; provided parameters and executionPlan must be internally consistent and supported by the selected template. Budget, dataset coverage and available compute can reject a structurally valid request.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.\n\nSend a fresh X-Request-Nonce and current X-Request-Timestamp on every attempt. Reuse an idempotency key only for the same logical action.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Run preflight with the same configuration before launch. Omitted fields use server defaults; provided parameters and executionPlan must be internally consistent and supported by the selected template. Budget, dataset coverage and available compute can reject a structurally valid request.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","Send a fresh X-Request-Nonce and current X-Request-Timestamp on every attempt. Reuse an idempotency key only for the same logical action."],"x-example-url":"https://api.weavers.app/api/optimisation/runs","parameters":[{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"X-Request-Nonce","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$","description":"Generate a fresh nonce for every attempt."}},{"name":"X-Request-Timestamp","in":"header","required":true,"schema":{"type":"string","pattern":"^(?:[0-9]{10}|[0-9]{13})$","description":"Current Unix seconds (10 digits) or milliseconds (13 digits)."}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"compute":{"$ref":"#/components/schemas/Input_ExperimentComputeBudget_3c8a35e60dbb"},"candidateSourceRunId":{"type":"string"},"candidateTitle":{"type":"string"},"experimentName":{"type":"string"},"experimentKey":{"type":"string","const":"tp_sl_two_stage"},"templateKey":{"type":"string","const":"tp_sl_two_stage_nsga2_v1"},"cluster":{"type":"string","const":"dev"},"executionPlan":{"$ref":"#/components/schemas/Input_TpSlExecutionPlan_40e23743a052"},"seedConfig":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_OptimisationSeedConfig_475f565b3f38"}]},"clientLaunch":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_OptimisationClientLaunchContext_fcbd0c3e76de"}]},"parameters":{"$ref":"#/components/schemas/Input_TpSlTwoStageParameters_54ae630cd507"}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_38d1f037573b"},"example":{"runId":"1","status":"running","createdAt":"2025-01-01T00:00:00.000Z","idempotentReplay":false}}}},"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_38d1f037573b"},"example":{"runId":"1","status":"running","createdAt":"2025-01-01T00:00:00.000Z","idempotentReplay":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/runs' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header \"X-Request-Nonce: $(openssl rand -hex 16)\" \\\n  --header \"X-Request-Timestamp: $(date +%s)\" \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/optimisation/runs/preflight":{"post":{"operationId":"post-optimisation-runs-preflight","tags":["optimisation"],"summary":"POST /api/optimisation/runs/preflight","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nRun preflight with the same configuration before launch. Omitted fields use server defaults; provided parameters and executionPlan must be internally consistent and supported by the selected template. Budget, dataset coverage and available compute can reject a structurally valid request.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Run preflight with the same configuration before launch. Omitted fields use server defaults; provided parameters and executionPlan must be internally consistent and supported by the selected template. Budget, dataset coverage and available compute can reject a structurally valid request.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/preflight","parameters":[{"name":"deep","in":"query","required":false,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"compute":{"$ref":"#/components/schemas/Input_ExperimentComputeBudget_3c8a35e60dbb"},"candidateSourceRunId":{"type":"string"},"candidateTitle":{"type":"string"},"experimentName":{"type":"string"},"experimentKey":{"type":"string","const":"tp_sl_two_stage"},"templateKey":{"type":"string","const":"tp_sl_two_stage_nsga2_v1"},"cluster":{"type":"string","const":"dev"},"executionPlan":{"$ref":"#/components/schemas/Input_TpSlExecutionPlan_40e23743a052"},"seedConfig":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_OptimisationSeedConfig_475f565b3f38"}]},"clientLaunch":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_OptimisationClientLaunchContext_fcbd0c3e76de"}]},"parameters":{"$ref":"#/components/schemas/Input_TpSlTwoStageParameters_54ae630cd507"}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationPreflightResult_4ec7785952ee"},"example":{"ok":false,"status":"blocked","checks":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/runs/preflight' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/optimisation/niches/{nicheId}/data-window":{"get":{"operationId":"get-optimisation-niches-nicheId-data-window","tags":["optimisation"],"summary":"GET /api/optimisation/niches/:nicheId/data-window","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/niches/1/data-window?nicheKey=example&dataProvider=example","parameters":[{"name":"nicheId","in":"path","required":true,"schema":{"type":"string"}},{"name":"nicheKey","in":"query","required":true,"schema":{"type":"string"}},{"name":"dataProvider","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a974bfbf382c"},"example":{"dataWindow":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_138f3e7d30a0"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/niches/1/data-window?nicheKey=example&dataProvider=example' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/data-window":{"post":{"operationId":"post-optimisation-data-window","tags":["optimisation"],"summary":"POST /api/optimisation/data-window","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/data-window","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"anyOf":[{"$ref":"#/components/schemas/Input_TpSlStageAPlatformNicheUniverseSource_31ded7bfecca"},{"$ref":"#/components/schemas/Input_TpSlStageATickerPoolUniverseSource_d13dfeeb0e16"}]},"dataProvider":{"type":"string"}},"required":["source","dataProvider"],"additionalProperties":false},"example":{"source":{"type":"ticker_pool","symbols":["AAPL"]},"dataProvider":"alpaca"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_a974bfbf382c"},"example":{"dataWindow":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_138f3e7d30a0"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/data-window' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/optimisation/strategy-niches":{"get":{"operationId":"get-optimisation-strategy-niches","tags":["optimisation"],"summary":"GET /api/optimisation/strategy-niches","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/strategy-niches","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b8fc5ac74179"},"example":{"niches":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/strategy-niches' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs/{runId}":{"get":{"operationId":"get-optimisation-runs-runId","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"includeLogs","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationRunDetail_10fcc2eef334"},"example":{"run":{"runId":"1","experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","status":"running","visibility":"private","publishedAt":null,"cluster":"dev","workerCount":1,"workersRunning":1,"workersSucceeded":1,"workersFailed":1,"workersPending":1,"createdAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null,"cancelledAt":null,"requestedByEmail":null,"publishedStrategyId":null,"latestPublishJob":null,"publishPipeline":null,"parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"errorCode":null,"errorMessage":null,"failureDiagnostic":null,"summary":{},"trajectories":{"stageA":null,"stageA2":null,"stageB":null},"trajectory":null,"analytics":null,"canEditVisibility":false},"workers":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs/{runId}/strategy-certification":{"get":{"operationId":"get-optimisation-runs-runId-strategy-certification","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId/strategy-certification","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/strategy-certification","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d0810bb41a26"},"example":{"certification":{"runId":"1","strategyId":null,"audit":null,"nicheMap":[],"paperRuntime":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1/strategy-certification' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs/{runId}/paper-activity":{"get":{"operationId":"get-optimisation-runs-runId-paper-activity","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId/paper-activity","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/paper-activity","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaPaperActivity_8a670f9e38af"},"example":{"paperPeriodId":1,"summary":{"openPositions":1,"closedPositions":1,"pendingOrders":1,"failedOrders":1,"skippedActions":1,"openAnomalies":1,"realizedPnl":1,"openEntryNotional":1,"lastActivityAt":null},"positions":[],"orderIntents":[],"fills":[],"skippedActions":[],"anomalies":[],"limit":1,"truncated":{"positions":false,"orderIntents":false,"fills":false,"skippedActions":false,"anomalies":false}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1/paper-activity' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs/{runId}/strategy-runtime-control":{"post":{"operationId":"post-optimisation-runs-runId-strategy-runtime-control","tags":["optimisation"],"summary":"POST /api/optimisation/runs/:runId/strategy-runtime-control","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\npause requires a positive pauseMinutes value. activate and kill do not require pauseMinutes. The account must control the selected strategy runtime.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","pause requires a positive pauseMinutes value. activate and kill do not require pauseMinutes. The account must control the selected strategy runtime.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/strategy-runtime-control","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"enum":["activate","pause","kill"]},"pauseMinutes":{"type":["number","string"],"description":"A positive whole number of minutes. Required when action is pause."}},"required":["action"],"additionalProperties":false},"example":{"action":"pause","pauseMinutes":30}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_2f4f3fbd4890"},"example":{"runId":"1","strategyId":"11111111-1111-4111-8111-111111111111","autoExecution":{"scope":"paper","state":"active","pauseUntil":null,"reason":null,"updatedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_dc5800166fa6"}]},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/runs/1/strategy-runtime-control' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/optimisation/runs/{runId}/holdout-trades":{"get":{"operationId":"get-optimisation-runs-runId-holdout-trades","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId/holdout-trades","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nPass the previous page's nextCursor unchanged to continue the same run and period.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Pass the previous page's nextCursor unchanged to continue the same run and period."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/holdout-trades","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string","pattern":"^[0-9]+$"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"period","in":"query","required":false,"schema":{"enum":["holdout","validation"]}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationRunHoldoutTradesResponse_73c3fa57aff4"},"example":{"items":[],"nextCursor":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1/holdout-trades' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs/{runId}/holdout-price-action":{"get":{"operationId":"get-optimisation-runs-runId-holdout-price-action","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId/holdout-price-action","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/holdout-price-action?symbol=AAPL&startDay=2025-01-01&endDay=2025-02-01","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"symbol","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":32}},{"name":"startDay","in":"query","required":true,"schema":{"type":"string","format":"date"}},{"name":"endDay","in":"query","required":true,"schema":{"type":"string","format":"date"}},{"name":"includeHistory","in":"query","required":false,"schema":{"enum":["true","false"]}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationRunHoldoutPriceActionResponse_7ed59bedc7cd"},"example":{"symbol":"AAPL","startDay":"2025-01-01","endDay":"2025-06-30","candles":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1/holdout-price-action?symbol=AAPL&startDay=2025-01-01&endDay=2025-02-01' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs/{runId}/cancel":{"post":{"operationId":"post-optimisation-runs-runId-cancel","tags":["optimisation"],"summary":"POST /api/optimisation/runs/:runId/cancel","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/cancel","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationRunDetail_10fcc2eef334"},"example":{"run":{"runId":"1","experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","status":"running","visibility":"private","publishedAt":null,"cluster":"dev","workerCount":1,"workersRunning":1,"workersSucceeded":1,"workersFailed":1,"workersPending":1,"createdAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null,"cancelledAt":null,"requestedByEmail":null,"publishedStrategyId":null,"latestPublishJob":null,"publishPipeline":null,"parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"errorCode":null,"errorMessage":null,"failureDiagnostic":null,"summary":{},"trajectories":{"stageA":null,"stageA2":null,"stageB":null},"trajectory":null,"analytics":null,"canEditVisibility":false},"workers":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/runs/1/cancel' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/optimisation/runs/{runId}/publish":{"post":{"operationId":"post-optimisation-runs-runId-publish","tags":["optimisation"],"summary":"POST /api/optimisation/runs/:runId/publish","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/publish","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationRunDetail_10fcc2eef334"},"example":{"run":{"runId":"1","experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","status":"running","visibility":"private","publishedAt":null,"cluster":"dev","workerCount":1,"workersRunning":1,"workersSucceeded":1,"workersFailed":1,"workersPending":1,"createdAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null,"cancelledAt":null,"requestedByEmail":null,"publishedStrategyId":null,"latestPublishJob":null,"publishPipeline":null,"parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"errorCode":null,"errorMessage":null,"failureDiagnostic":null,"summary":{},"trajectories":{"stageA":null,"stageA2":null,"stageB":null},"trajectory":null,"analytics":null,"canEditVisibility":false},"workers":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/runs/1/publish' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/optimisation/runs/{runId}/unpublish":{"post":{"operationId":"post-optimisation-runs-runId-unpublish","tags":["optimisation"],"summary":"POST /api/optimisation/runs/:runId/unpublish","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/unpublish","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationRunDetail_10fcc2eef334"},"example":{"run":{"runId":"1","experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","status":"running","visibility":"private","publishedAt":null,"cluster":"dev","workerCount":1,"workersRunning":1,"workersSucceeded":1,"workersFailed":1,"workersPending":1,"createdAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null,"cancelledAt":null,"requestedByEmail":null,"publishedStrategyId":null,"latestPublishJob":null,"publishPipeline":null,"parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"errorCode":null,"errorMessage":null,"failureDiagnostic":null,"summary":{},"trajectories":{"stageA":null,"stageA2":null,"stageB":null},"trajectory":null,"analytics":null,"canEditVisibility":false},"workers":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/runs/1/unpublish' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/optimisation/runs/{runId}/publish-strategy":{"post":{"operationId":"post-optimisation-runs-runId-publish-strategy","tags":["optimisation"],"summary":"POST /api/optimisation/runs/:runId/publish-strategy","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/publish-strategy","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"displayName":{"type":"string"},"strategyKey":{"type":["string","null"]},"activateNow":{"type":["boolean","string","number"]},"monteCarloExecutionMode":{"type":"string"}},"required":["displayName"],"additionalProperties":false},"example":{"displayName":"Example research"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationStrategyPublishJob_6facff8a1454"},"example":{"jobId":"1","runId":"1","status":"running","stressTestId":null,"stressTestStatus":null,"stressTestProgressStage":null,"stressTestProgressMessage":null,"stressTestProgressHeartbeatAt":null,"request":{"displayName":"Example research","strategyKey":null,"activateNow":false,"monteCarloExecutionMode":"default"},"result":null,"errorCode":null,"errorMessage":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null}}}},"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationStrategyPublishJob_6facff8a1454"},"example":{"jobId":"1","runId":"1","status":"running","stressTestId":null,"stressTestStatus":null,"stressTestProgressStage":null,"stressTestProgressMessage":null,"stressTestProgressHeartbeatAt":null,"request":{"displayName":"Example research","strategyKey":null,"activateNow":false,"monteCarloExecutionMode":"default"},"result":null,"errorCode":null,"errorMessage":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_dc5800166fa6"}]},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/runs/1/publish-strategy' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/optimisation/publish-strategy-jobs/{jobId}":{"get":{"operationId":"get-optimisation-publish-strategy-jobs-jobId","tags":["optimisation"],"summary":"GET /api/optimisation/publish-strategy-jobs/:jobId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/publish-strategy-jobs/1","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationStrategyPublishJob_6facff8a1454"},"example":{"jobId":"1","runId":"1","status":"running","stressTestId":null,"stressTestStatus":null,"stressTestProgressStage":null,"stressTestProgressMessage":null,"stressTestProgressHeartbeatAt":null,"request":{"displayName":"Example research","strategyKey":null,"activateNow":false,"monteCarloExecutionMode":"default"},"result":null,"errorCode":null,"errorMessage":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/publish-strategy-jobs/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs/{runId}/validation-attempts":{"get":{"operationId":"get-optimisation-runs-runId-validation-attempts","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId/validation-attempts","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/validation-attempts","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"attemptId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Response_ValidationAttempt_02e800697e2a"}},"example":[]}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1/validation-attempts' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"post":{"operationId":"post-optimisation-runs-runId-validation-attempts","tags":["optimisation"],"summary":"POST /api/optimisation/runs/:runId/validation-attempts","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/validation-attempts","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ValidationAttempt_02e800697e2a"},"example":{"id":"1","runId":"1","versionId":"1","createdAt":"2025-01-01T00:00:00.000Z","status":"blocked","checks":[],"evidence":{"winnerTrial":null,"dataProvider":"example","startDay":null,"endDay":null,"tradeCount":null,"parameters":{},"winner":{},"holdoutEquityCurve":[],"holdout":{},"missing":[]},"explanation":null,"decisions":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/runs/1/validation-attempts' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/optimisation/runs/{runId}/validation-attempts/{attemptId}/{action}":{"post":{"operationId":"post-optimisation-runs-runId-validation-attempts-attemptId-action","tags":["optimisation"],"summary":"POST /api/optimisation/runs/:runId/validation-attempts/:attemptId/:action","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\naction selects explanation, revision or decision. explanation uses an empty body; revision first sends reason only plus X-Idempotency-Key to link the source run. Editing that revision sends reason, request and parentRevisionId. decision sends investigate, revise, observe or reject with a required reason of up to 2,000 characters. Read the attempt and its available state transitions before acting.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","action selects explanation, revision or decision. explanation uses an empty body; revision first sends reason only plus X-Idempotency-Key to link the source run. Editing that revision sends reason, request and parentRevisionId. decision sends investigate, revise, observe or reject with a required reason of up to 2,000 characters. Read the attempt and its available state transitions before acting.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/validation-attempts/1/explanation","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"attemptId","in":"path","required":true,"schema":{"type":"string"}},{"name":"action","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{},"required":[],"additionalProperties":false},{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":2000}},"required":["reason"],"additionalProperties":false},{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":2000},"request":{"$ref":"#/components/schemas/Input_OptimisationCreateRequest_e76df567da71"},"parentRevisionId":{"type":"string"}},"required":["reason","request","parentRevisionId"],"additionalProperties":false},{"type":"object","properties":{"decision":{"enum":["investigate","revise","observe","reject"]},"reason":{"type":"string","minLength":1,"maxLength":2000}},"required":["decision","reason"],"additionalProperties":false}]},"example":{}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response_ValidationAttempt_02e800697e2a"}]},"example":{"id":"1","runId":"1","versionId":"1","createdAt":"2025-01-01T00:00:00.000Z","status":"blocked","checks":[],"evidence":{"winnerTrial":null,"dataProvider":"example","startDay":null,"endDay":null,"tradeCount":null,"parameters":{},"winner":{},"holdoutEquityCurve":[],"holdout":{},"missing":[]},"explanation":null,"decisions":[]}}}},"201":{"description":"Resource created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ValidationRevision_44c9f8e33fdf"},"example":{"id":"1","attemptId":"1","runId":"1","sourceVersionId":"1","revisionNumber":1,"parentRevisionId":null,"reason":"example","request":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}},"createdAt":"2025-01-01T00:00:00.000Z"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/runs/1/validation-attempts/1/explanation' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/optimisation/runs/{runId}/validation-attempts/{attemptId}/revisions/{revisionId}":{"get":{"operationId":"get-optimisation-runs-runId-validation-attempts-attemptId-revisions-revisionId","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId/validation-attempts/:attemptId/revisions/:revisionId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/validation-attempts/1/revisions/1","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"attemptId","in":"path","required":true,"schema":{"type":"string"}},{"name":"revisionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ValidationRevision_44c9f8e33fdf"},"example":{"id":"1","attemptId":"1","runId":"1","sourceVersionId":"1","revisionNumber":1,"parentRevisionId":null,"reason":"example","request":{"experimentKey":"tp_sl_two_stage","templateKey":"tp_sl_two_stage_nsga2_v1","cluster":"dev","parameters":{"dataProvider":"alpaca","publishBenchmarkSymbol":"SPY","objectivePreset":"balanced","workerCount":1,"startDate":null,"endDate":null,"equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false,"stageATrials":1,"stageA2Mode":"disabled","stageA2Trials":1,"stageAToA2Threshold":1,"stageA2HorizonBars":1,"stageA2LabelMinUpPct":1,"stageA2PredictorFeaturesCsv":"example","stageBTrials":1,"stageBExecutionTimeframe":"1d","stageBMaxHoldingBars":1,"lookbackYears":1,"trainMonths":1,"valMonths":1,"stepMonths":1,"purgeDays":1,"holdoutMonths":1,"horizonBars":1,"labelMinUpPct":1,"stageAFeatureTimeframe":"1d","predictorFeaturesCsv":"example","stageADecisionThreshold":1,"stageALearningRateMin":1,"stageALearningRateMax":1,"stageAL2Min":1,"stageAL2Max":1,"stageAEpochsMin":1,"stageAEpochsMax":1,"stageAPosWeightMin":1,"stageAPosWeightMax":1,"tpMin":1,"tpMax":1,"slMin":1,"slMax":1,"reserveCashPctMin":1,"reserveCashPctMax":1,"optimizeProbThreshold":false,"probThresholdMin":1,"probThresholdMax":1,"executionMode":"notional","executionBrokerId":"1","leverageMode":"cash","requestedLeverage":1,"marginInterestAnnualRatePct":null,"marginInterestDayCountBasis":null,"marginInterestRateSource":null,"marginInterestBenchmarkId":null,"marginInterestBenchmarkRatePct":null,"marginInterestBenchmarkRateSeries":null,"marginInterestSpreadPct":null,"initialMarginRequirementPct":null,"maintenanceMarginRequirementPct":null,"marketFeeProfile":null,"initialCapital":1,"riskPerTradePct":1,"maxPositionPctEquity":1,"maxGrossExposurePctEquity":1,"allowFractionalShares":false,"maxTradesPerDay":null,"commissionBps":1,"slippageBps":1,"halfSpreadBps":1,"borrowBpsPerBar":1,"minTrades":1,"maxDrawdown":1,"drawdownGateMetric":"max_drawdown_p75","maxSymbolConcentration":1,"minRiskAdjusted":1,"maxTurnover":null,"maxCvar95":null,"lambdaReturn":1,"lambdaStability":1,"lambdaTail":1,"lambdaDrawdown":1,"lambdaConcentration":1,"lambdaTurnover":1,"negativeRiskAdjustedPenalty":1,"saveValidationTrades":false,"stageASeedBase":1,"stageBSeedBase":1},"executionPlan":{"mode":"stage_a_only","stageASourceRunId":null,"canvas":null}},"createdAt":"2025-01-01T00:00:00.000Z"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1/validation-attempts/1/revisions/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs/{runId}/entry-filter-decisions":{"get":{"operationId":"get-optimisation-runs-runId-entry-filter-decisions","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId/entry-filter-decisions","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nPass the previous page's nextCursor unchanged to continue the same run and period.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Pass the previous page's nextCursor unchanged to continue the same run and period."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/entry-filter-decisions","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string","pattern":"^[0-9]+$"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"period","in":"query","required":false,"schema":{"enum":["holdout","validation"]}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_OptimisationEntryFilterDecisionsResponse_f8153b0e563a"},"example":{"items":[],"nextCursor":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_dc5800166fa6"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dc5800166fa6"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1/entry-filter-decisions' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/me/premium":{"get":{"operationId":"get-me-premium","tags":["credits"],"summary":"GET /api/me/premium","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/premium","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_af4413ad4ae4"},"example":{"premium":{"status":"active","hasPremiumAccess":false,"tier":null,"provider":null,"stipendCredits":1,"currentPeriodStart":null,"currentPeriodEnd":null,"canceledAt":null,"stipendAwardedNow":false,"stipendAmountAwarded":1},"sandboxEnabled":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_eeab616767e9"}]},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/premium' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/product-feedback":{"post":{"operationId":"post-product-feedback","tags":["support"],"summary":"POST /api/product-feedback","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nMessage: 1–2,000 characters. Context contains a surface name and pathname only; do not include query strings or transcripts.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Message: 1–2,000 characters. Context contains a surface name and pathname only; do not include query strings or transcripts.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/product-feedback","parameters":[{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"context":{"$ref":"#/components/schemas/Input_ProductFeedbackContext_ec94d77dd41b"}},"required":["message","context"],"additionalProperties":false},"example":{"message":"The notebook save indicator could be clearer.","context":{"surface":"eureka","pathname":"/eureka"}}}}},"responses":{"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ProductFeedbackReceipt_cc2791ececc9"},"example":{"id":"1","status":"received","createdAt":"2025-01-01T00:00:00.000Z"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_8f661228d542"}]},"example":{"code":"example","error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_8f661228d542"},"example":{"code":"example","error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_0dd57c815f0a"},"example":{"code":"feedback_key_reused","error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/product-feedback' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/profile":{"get":{"operationId":"get-profile","tags":["account"],"summary":"GET /api/profile","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/profile","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_6da51495085e"},"example":{"profile":{"updatedAt":null,"feedState":{"selectedTag":"example"},"filters":{},"workspaceState":{"backtestDrafts":{},"backtestResults":{}}}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_147c5165132d"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/profile' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]},"patch":{"operationId":"patch-profile","tags":["account"],"summary":"PATCH /api/profile","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nSend at least one of feedState, filters or workspaceState. Existing nested state is merged. Do not include unsafe object keys.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Send at least one of feedState, filters or workspaceState. Existing nested state is merged. Do not include unsafe object keys.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/profile","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"feedState":{"type":"object","properties":{"selectedTag":{"type":"string","minLength":1,"maxLength":120}},"required":[],"additionalProperties":true},"filters":{"type":"object","additionalProperties":true,"description":"Application-owned JSON state. Keys vary with the saved view; unsafe object keys are rejected."},"workspaceState":{"type":"object","properties":{"backtestDrafts":{"type":"object","additionalProperties":true,"description":"Application-owned JSON state. Keys vary with the saved view; unsafe object keys are rejected."},"backtestResults":{"type":"object","additionalProperties":true,"description":"Application-owned JSON state. Keys vary with the saved view; unsafe object keys are rejected."}},"required":[],"additionalProperties":true}},"required":[],"additionalProperties":false,"minProperties":1},"example":{"feedState":{"selectedTag":"All"}}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_691353e58a83"},"example":{"profile":{"updatedAt":"2025-01-01T00:00:00.000Z","feedState":{"selectedTag":"example"},"filters":{},"workspaceState":{"backtestDrafts":{},"backtestResults":{}}}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_147c5165132d"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_147c5165132d"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request PATCH \\\n  'https://api.weavers.app/api/profile' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/rules/idea":{"post":{"operationId":"post-eureka-rules-idea","tags":["assistants"],"summary":"POST /api/eureka/rules/idea","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nRequires the enabled rule feature and a connected assistant account. Use 1–12 messages of at most 4,000 characters. The current rule version accepts a daily Alpaca niche dataset.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Requires the enabled rule feature and a connected assistant account. Use 1–12 messages of at most 4,000 characters. The current rule version accepts a daily Alpaca niche dataset.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/rules/idea","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"string"}},"hypothesisId":{"anyOf":[{"type":"null"},{"type":"string"}]},"expectedRevision":{"type":"number"},"envelope":{"$ref":"#/components/schemas/Input_RuleEnvelope_a38457de4853"}},"additionalProperties":false,"required":["messages","hypothesisId","expectedRevision","envelope"]},"example":{"messages":["Draft an entry when close crosses above SMA 20 and an exit when it crosses below SMA 20."],"hypothesisId":null,"expectedRevision":0,"envelope":{"spec":{"schema_version":1,"type":"rule","side":"long","bar":"1d","entry":{"op":"cross_above","left":{"field":"close"},"right":{"indicator":"sma","period":20}},"exit":{"op":"cross_below","left":{"field":"close"},"right":{"indicator":"sma","period":20}},"stop_loss_pct":null,"take_profit_pct":null},"sizing":{"mode":"equal_notional","position_pct":5,"max_gross_pct":50,"simultaneous":"proportional","pyramiding":false,"borrowing":false},"dataset":{"provider":"alpaca","nicheId":1,"nicheKey":"example-niche","startDate":"2025-01-01","endDate":"2025-06-30","timeframe":"1D","equitiesOnly":true,"excludeEtfs":true,"excludeIndiaEtfs":true}}}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_RuleChatResponse_f44f5b483fb8"},"example":{"kind":"clarify","message":"Explain the data used in this research.","proposal":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_c016ae8f4997"},"example":{"code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"502":{"description":"Dependency failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_125f2a8b5e77"},"example":{"code":"example","error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_125f2a8b5e77"}]},"example":{"code":"example","error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/rules/idea' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/eureka/rules/capabilities":{"get":{"operationId":"get-eureka-rules-capabilities","tags":["assistants"],"summary":"GET /api/eureka/rules/capabilities","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/eureka/rules/capabilities","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_9cbce28bcf70"},"example":{"form":false,"runtime":false,"chat":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/eureka/rules/capabilities' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/eureka/rules/draft":{"post":{"operationId":"post-eureka-rules-draft","tags":["assistants"],"summary":"POST /api/eureka/rules/draft","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nSave returns a proposal with its revision and hash. Confirm requires that exact revision/hash and a new logical-action idempotency key. A user must review and confirm; the assistant cannot confirm on the user's behalf. This version supports daily Alpaca niche data.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Save returns a proposal with its revision and hash. Confirm requires that exact revision/hash and a new logical-action idempotency key. A user must review and confirm; the assistant cannot confirm on the user's behalf. This version supports daily Alpaca niche data.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/eureka/rules/draft","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Input___type_fbdd32627465"},{"$ref":"#/components/schemas/Input___type_ad10799f2c86"}]},"example":{"action":"save","hypothesisId":null,"expectedRevision":0,"envelope":{"spec":{"schema_version":1,"type":"rule","side":"long","bar":"1d","entry":{"op":"cross_above","left":{"field":"close"},"right":{"indicator":"sma","period":20}},"exit":{"op":"cross_below","left":{"field":"close"},"right":{"indicator":"sma","period":20}},"stop_loss_pct":null,"take_profit_pct":null},"sizing":{"mode":"equal_notional","position_pct":5,"max_gross_pct":50,"simultaneous":"proportional","pyramiding":false,"borrowing":false},"dataset":{"provider":"alpaca","nicheId":1,"nicheKey":"example-niche","startDate":"2025-01-01","endDate":"2025-06-30","timeframe":"1D","equitiesOnly":true,"excludeEtfs":true,"excludeIndiaEtfs":true}},"idempotencyKey":"example-rule-save-0001"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response_RuleProposal_cd3d093aca63"},{"$ref":"#/components/schemas/Response_RuleVersion_53e074ff95c1"}]},"example":{"hypothesisId":"1","revision":1,"hash":"example","status":"not_confirmed","envelope":{"spec":{"schema_version":1,"type":"rule","side":"long","bar":"1d","entry":{"op":"cross_above","left":1,"right":1},"exit":{"op":"cross_above","left":1,"right":1},"stop_loss_pct":null,"take_profit_pct":null},"sizing":{"mode":"equal_notional","position_pct":1,"max_gross_pct":1,"simultaneous":"proportional","pyramiding":false,"borrowing":false},"dataset":{"provider":"alpaca","startDate":"2025-01-01","endDate":"2025-06-30","timeframe":"1D","nicheId":1,"nicheKey":"example","equitiesOnly":false,"excludeEtfs":false,"excludeIndiaEtfs":false}},"readback":{"entry":{"match":"example","conditions":[]},"exit":{"match":"example","conditions":[]},"side":"example","bar":"example","execution":"example","stopLossPct":null,"takeProfitPct":null,"sizing":{"mode":"equal_notional","position_pct":1,"max_gross_pct":1,"simultaneous":"proportional","pyramiding":false,"borrowing":false},"searchTrials":1,"evaluatorVersion":"example"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_4c420f5f515b"},"example":{"code":"example","error":"example","field":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_125f2a8b5e77"},"example":{"code":"example","error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_125f2a8b5e77"},"example":{"code":"example","error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_125f2a8b5e77"},"example":{"code":"example","error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/eureka/rules/draft' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/auth/social/providers":{"get":{"operationId":"get-auth-social-providers","tags":["account"],"summary":"GET /api/auth/social/providers","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/social/providers","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d7d501e53190"},"example":{"providers":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/auth/social/providers' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/auth/social/{provider}/start":{"post":{"operationId":"post-auth-social-provider-start","tags":["account"],"summary":"POST /api/auth/social/:provider/start","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.\n\nprovider is github or x and must be enabled. Start in the browser, retain the flow cookie, then navigate to the returned url. Linking requires a recent signed-in session. returnTo must be an allowed local path.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","provider is github or x and must be enabled. Start in the browser, retain the flow cookie, then navigate to the returned url. Linking requires a recent signed-in session. returnTo must be an allowed local path.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/auth/social/github/start","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"intent":{"enum":["signin","signup","link"]},"referralCode":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,32}$"},"returnTo":{"type":"string"}},"required":[],"additionalProperties":false},"example":{"intent":"signin","returnTo":"/"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_07663f4a376a"},"example":{"url":"example"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/auth/social/github/start' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/auth/social/{provider}/callback":{"get":{"operationId":"get-auth-social-provider-callback","tags":["account"],"summary":"GET /api/auth/social/:provider/callback","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.\n\nProvider-driven callback: use the state and browser-proof cookie created by start. Successful callbacks include code; cancelled flows can include error instead. github iss, when supplied, must equal https://github.com/login/oauth. The result is a 303 browser redirect.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","Provider-driven callback: use the state and browser-proof cookie created by start. Successful callbacks include code; cancelled flows can include error instead. github iss, when supplied, must equal https://github.com/login/oauth. The result is a 303 browser redirect."],"x-example-url":"https://api.weavers.app/api/auth/social/github/callback?state=example","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string"}},{"name":"state","in":"query","required":true,"schema":{"type":"string"}},{"name":"code","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048}},{"name":"iss","in":"query","required":false,"schema":{"type":"string"}},{"name":"error","in":"query","required":false,"schema":{"type":"string"}},{"name":"error_description","in":"query","required":false,"schema":{"type":"string"}},{"name":"error_uri","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"303":{"description":"Continue with GET at the Location header.","headers":{"Location":{"description":"Next step in this browser flow.","schema":{"type":"string"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/auth/social/github/callback?state=example' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/auth/social/pending":{"get":{"operationId":"get-auth-social-pending","tags":["account"],"summary":"GET /api/auth/social/pending","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/social/pending","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7e7b96e4f981"},"example":{"provider":"github","linking":false,"needsEmail":false,"codeSent":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/auth/social/pending' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/auth/social/connections":{"get":{"operationId":"get-auth-social-connections","tags":["account"],"summary":"GET /api/auth/social/connections","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow."],"x-example-url":"https://api.weavers.app/api/auth/social/connections","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_55daae5d2042"},"example":{"providers":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/auth/social/connections' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/auth/social/email":{"post":{"operationId":"post-auth-social-email","tags":["account"],"summary":"POST /api/auth/social/email","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/auth/social/email","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"],"additionalProperties":false},"example":{"email":"developer@example.com"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_4323a1c61381"},"example":{"sent":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/auth/social/email' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/auth/social/complete":{"post":{"operationId":"post-auth-social-complete","tags":["account"],"summary":"POST /api/auth/social/complete","description":"Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"flow","x-notes":["Part of a browser authentication or connection flow. Keep the flow's state and cookies; provider values in examples must come from that flow.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/auth/social/complete","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_1bd4c863344a"},"example":{"success":false,"linked":false,"returnTo":"example"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___type_dde7d92bc899"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"409":{"description":"Revision, state or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"503":{"description":"Service or dependency unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b63ca8316e41"},"example":{"error":"example"}}}}},"security":[{},{"WeaversSession":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/auth/social/complete' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/sparkline":{"get":{"operationId":"get-sparkline","tags":["market-data"],"summary":"GET /api/sparkline","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/sparkline","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"string"}},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string"}},{"name":"rank","in":"query","required":false,"schema":{"type":"string"}},{"name":"assetType","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_SparklineResponse_af29de7b5c2a"},"example":{"items":[],"page":1,"pageSize":1,"total":1,"updatedAt":null,"windowStart":null,"windowEnd":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_6753e7ff45c8"},{"$ref":"#/components/schemas/Response___object_e2d6dcc91883"}]},"example":{"error":"example","maxPage":1}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e2d6dcc91883"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/sparkline' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/sparkline/public":{"get":{"operationId":"get-sparkline-public","tags":["market-data"],"summary":"GET /api/sparkline/public","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/sparkline/public","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_SparklineResponse_af29de7b5c2a"},"example":{"items":[],"page":1,"pageSize":1,"total":1,"updatedAt":null,"windowStart":null,"windowEnd":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_e2d6dcc91883"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/sparkline/public'"}]}},"/api/strategies":{"get":{"operationId":"get-strategies","tags":["strategies"],"summary":"GET /api/strategies","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/strategies","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d20e8c08af80"},"example":{"strategies":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/strategies'"}]}},"/api/strategies/niches":{"get":{"operationId":"get-strategies-niches","tags":["strategies"],"summary":"GET /api/strategies/niches","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/strategies/niches","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"strategyId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_da3d0360dd40"},"example":{"niches":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_ad0b6ea0eb4e"},"example":{"error":"invalid_strategy_id"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/strategies/niches'"}]}},"/api/me/strategies":{"get":{"operationId":"get-me-strategies","tags":["strategies"],"summary":"GET /api/me/strategies","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/strategies","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d20e8c08af80"},"example":{"strategies":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/strategies' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/me/strategies/niches":{"get":{"operationId":"get-me-strategies-niches","tags":["strategies"],"summary":"GET /api/me/strategies/niches","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/strategies/niches","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"strategyId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_da3d0360dd40"},"example":{"niches":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_ad0b6ea0eb4e"},"example":{"error":"invalid_strategy_id"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/strategies/niches' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/strategies/{strategyId}/lineage":{"get":{"operationId":"get-strategies-strategyId-lineage","tags":["strategies"],"summary":"GET /api/strategies/:strategyId/lineage","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/strategies/11111111-1111-4111-8111-111111111111/lineage","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"depth","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d0ac29b06057"},"example":{"lineage":{"focusStrategyId":"1","rootStrategyId":"1","nodes":[],"truncated":false,"depthLimit":1}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_06e7e2dc4f82"},{"$ref":"#/components/schemas/Response___object_18c32f1387a3"}]},"example":{"error":"invalid_strategy_id"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7e6cda526408"},"example":{"error":"example","code":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/strategies/11111111-1111-4111-8111-111111111111/lineage'"}]}},"/api/me/strategies/{strategyId}/lineage":{"get":{"operationId":"get-me-strategies-strategyId-lineage","tags":["strategies"],"summary":"GET /api/me/strategies/:strategyId/lineage","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/strategies/11111111-1111-4111-8111-111111111111/lineage","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"depth","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d0ac29b06057"},"example":{"lineage":{"focusStrategyId":"1","rootStrategyId":"1","nodes":[],"truncated":false,"depthLimit":1}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_06e7e2dc4f82"},{"$ref":"#/components/schemas/Response___object_18c32f1387a3"}]},"example":{"error":"invalid_strategy_id"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7e6cda526408"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/strategies/11111111-1111-4111-8111-111111111111/lineage' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/strategies/{strategyId}/fork":{"post":{"operationId":"post-strategies-strategyId-fork","tags":["strategies"],"summary":"POST /api/strategies/:strategyId/fork","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nThe published source must be forkable. The returned draft belongs to the requesting account; this does not modify the published source.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","The published source must be forkable. The returned draft belongs to the requesting account; this does not modify the published source.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/strategies/11111111-1111-4111-8111-111111111111/fork","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"templateKey":{"type":"string","const":"tp_sl_two_stage_nsga2_v1"},"cluster":{"type":"string","const":"dev"},"executionPlan":{"$ref":"#/components/schemas/Input_TpSlExecutionPlan_40e23743a052"},"parameters":{"$ref":"#/components/schemas/Input_TpSlTwoStageParameters_54ae630cd507"}},"required":[],"additionalProperties":false},"example":{}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_StrategyForkResult_8dcd6e59e984"},"example":{"runId":"1","createdAt":"2025-01-01T00:00:00.000Z","idempotentReplay":false,"parentStrategyId":"1","parentStrategyAlias":"example","childStrategyId":"1","childStrategyAlias":"example"}}}},"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_StrategyForkResult_8dcd6e59e984"},"example":{"runId":"1","createdAt":"2025-01-01T00:00:00.000Z","idempotentReplay":false,"parentStrategyId":"1","parentStrategyAlias":"example","childStrategyId":"1","childStrategyAlias":"example"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_06e7e2dc4f82"},{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},{"$ref":"#/components/schemas/Response___object_7e6cda526408"}]},"example":{"error":"invalid_strategy_id"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7e6cda526408"},"example":{"error":"example","code":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7e6cda526408"},"example":{"error":"example","code":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7e6cda526408"},"example":{"error":"example","code":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/strategies/11111111-1111-4111-8111-111111111111/fork' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/strategies/{strategyId}":{"get":{"operationId":"get-strategies-strategyId","tags":["strategies"],"summary":"GET /api/strategies/:strategyId","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/strategies/11111111-1111-4111-8111-111111111111","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_1fba614ea4e3"},"example":{"strategy":{"headline":{"strategyId":"11111111-1111-4111-8111-111111111111","title":"Example research","alias":"example","identityLabel":"Example research","publishedAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"},"links":{"canvasHref":"example","strategyLabHref":"example"},"template":null,"snapshot":{"artifact":{"version":"example","createdAt":"2025-01-01T00:00:00.000Z","publishedAt":"2025-01-01T00:00:00.000Z"},"deployments":{"totalActive":1,"exchanges":[]},"latestSignal":null},"audit":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_06e7e2dc4f82"},{"$ref":"#/components/schemas/Response___object_18c32f1387a3"}]},"example":{"error":"invalid_strategy_id"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/strategies/11111111-1111-4111-8111-111111111111'"}]}},"/api/me/strategies/{strategyId}":{"get":{"operationId":"get-me-strategies-strategyId","tags":["strategies"],"summary":"GET /api/me/strategies/:strategyId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/strategies/11111111-1111-4111-8111-111111111111","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_1fba614ea4e3"},"example":{"strategy":{"headline":{"strategyId":"11111111-1111-4111-8111-111111111111","title":"Example research","alias":"example","identityLabel":"Example research","publishedAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"},"links":{"canvasHref":"example","strategyLabHref":"example"},"template":null,"snapshot":{"artifact":{"version":"example","createdAt":"2025-01-01T00:00:00.000Z","publishedAt":"2025-01-01T00:00:00.000Z"},"deployments":{"totalActive":1,"exchanges":[]},"latestSignal":null},"audit":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_06e7e2dc4f82"},{"$ref":"#/components/schemas/Response___object_18c32f1387a3"}]},"example":{"error":"invalid_strategy_id"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/strategies/11111111-1111-4111-8111-111111111111' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/me/strategies/{strategyId}/runtime-control":{"post":{"operationId":"post-me-strategies-strategyId-runtime-control","tags":["strategies"],"summary":"POST /api/me/strategies/:strategyId/runtime-control","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\npause requires a positive pauseMinutes value. activate and kill do not require pauseMinutes. The account must control the selected strategy runtime.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","pause requires a positive pauseMinutes value. activate and kill do not require pauseMinutes. The account must control the selected strategy runtime.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/me/strategies/11111111-1111-4111-8111-111111111111/runtime-control","parameters":[{"name":"strategyId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"enum":["activate","pause","kill"]},"pauseMinutes":{"type":["number","string"],"description":"A positive whole number of minutes. Required when action is pause."},"reason":{"type":["string","null"]}},"required":["action"],"additionalProperties":false},"example":{"action":"pause","pauseMinutes":30}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_84a7e3218b0e"},"example":{"strategyId":"11111111-1111-4111-8111-111111111111","autoExecution":{"scope":"paper","state":"active","pauseUntil":null,"reason":null,"updatedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_06e7e2dc4f82"},{"$ref":"#/components/schemas/Response___object_69bc38e58954"},{"$ref":"#/components/schemas/Response___object_18c32f1387a3"}]},"example":{"error":"invalid_strategy_id"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_18c32f1387a3"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/me/strategies/11111111-1111-4111-8111-111111111111/runtime-control' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]}},"/api/optimisation/runs/{runId}/retarget":{"post":{"operationId":"post-optimisation-runs-runId-retarget","tags":["optimisation"],"summary":"POST /api/optimisation/runs/:runId/retarget","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nInspect retarget-source first to check which modes are available. Supply 1–100 canonical symbols and an ordered date window. A frozen evaluation requires a compatible source artifact; retraining requires an owned workspace candidate. Poll the returned jobId.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Inspect retarget-source first to check which modes are available. Supply 1–100 canonical symbols and an ordered date window. A frozen evaluation requires a compatible source artifact; retraining requires an owned workspace candidate. Poll the returned jobId.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/retarget","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-idempotency-key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.strategy-retarget.v1"},"version":{"type":"number","const":1},"mode":{"enum":["frozen_evaluation","retrain"]},"symbols":{"type":"array","items":{"type":"string"}},"startDate":{"type":"string"},"endDate":{"type":"string"}},"additionalProperties":false,"required":["schema","version","mode","symbols","startDate","endDate"]},"example":{"schema":"weavers.strategy-retarget.v1","version":1,"mode":"frozen_evaluation","symbols":["AAPL"],"startDate":"2025-01-01","endDate":"2025-06-30"}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaStrategyRetargetCreateResponse_1b9ca06fe9f9"},"example":{"job":{"jobId":"1","mode":"frozen_evaluation","status":"running","source":{"runId":"1","artifactId":null,"artifactVersion":null,"candidateId":null,"sourceSymbols":[],"sourceStartDate":null,"sourceEndDate":null},"symbols":[],"startDate":"2025-01-01","endDate":"2025-06-30","overlap":{"sharedSymbols":[],"sharesSourceSymbols":false,"overlapsSourceDataWindow":false,"message":"Explain the data used in this research."},"result":null,"errorCode":null,"errorMessage":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null},"idempotentReplay":false}}}},"202":{"description":"Work accepted. Poll the returned job or request identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaStrategyRetargetCreateResponse_1b9ca06fe9f9"},"example":{"job":{"jobId":"1","mode":"frozen_evaluation","status":"running","source":{"runId":"1","artifactId":null,"artifactVersion":null,"candidateId":null,"sourceSymbols":[],"sourceStartDate":null,"sourceEndDate":null},"symbols":[],"startDate":"2025-01-01","endDate":"2025-06-30","overlap":{"sharedSymbols":[],"sharesSourceSymbols":false,"overlapsSourceDataWindow":false,"message":"Explain the data used in this research."},"result":null,"errorCode":null,"errorMessage":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null},"idempotentReplay":false}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"}]},"example":{"code":"example","error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/runs/1/retarget' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'x-idempotency-key: example-request-0001' \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\" \\\n  --header 'Content-Type: application/json' \\\n  --data-binary @request.json"}]},"get":{"operationId":"get-optimisation-runs-runId-retarget","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId/retarget","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/retarget","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_d8fda0e7fa5c"},"example":{"jobs":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1/retarget' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/runs/{runId}/retarget-source":{"get":{"operationId":"get-optimisation-runs-runId-retarget-source","tags":["optimisation"],"summary":"GET /api/optimisation/runs/:runId/retarget-source","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/runs/1/retarget-source","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_EurekaStrategyRetargetSourcePreview_e7eedac2dd5f"},"example":{"source":{"runId":"1","artifactId":null,"artifactVersion":null,"candidateId":null,"sourceSymbols":[],"sourceStartDate":null,"sourceEndDate":null},"frozenAvailable":false,"frozenUnavailableReason":null,"retrainAvailable":false,"retrainUnavailableReason":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/runs/1/retarget-source' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/retarget-jobs/{jobId}":{"get":{"operationId":"get-optimisation-retarget-jobs-jobId","tags":["optimisation"],"summary":"GET /api/optimisation/retarget-jobs/:jobId","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/optimisation/retarget-jobs/1","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_4afc18266d8b"},"example":{"job":{"jobId":"1","mode":"frozen_evaluation","status":"running","source":{"runId":"1","artifactId":null,"artifactVersion":null,"candidateId":null,"sourceSymbols":[],"sourceStartDate":null,"sourceEndDate":null},"symbols":[],"startDate":"2025-01-01","endDate":"2025-06-30","overlap":{"sharedSymbols":[],"sharesSourceSymbols":false,"overlapsSourceDataWindow":false,"message":"Explain the data used in this research."},"result":null,"errorCode":null,"errorMessage":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/optimisation/retarget-jobs/1' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/optimisation/retarget-jobs/{jobId}/cancel":{"post":{"operationId":"post-optimisation-retarget-jobs-jobId-cancel","tags":["optimisation"],"summary":"POST /api/optimisation/retarget-jobs/:jobId/cancel","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/optimisation/retarget-jobs/1/cancel","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_4afc18266d8b"},"example":{"job":{"jobId":"1","mode":"frozen_evaluation","status":"running","source":{"runId":"1","artifactId":null,"artifactVersion":null,"candidateId":null,"sourceSymbols":[],"sourceStartDate":null,"sourceEndDate":null},"symbols":[],"startDate":"2025-01-01","endDate":"2025-06-30","overlap":{"sharedSymbols":[],"sharesSourceSymbols":false,"overlapsSourceDataWindow":false,"message":"Explain the data used in this research."},"result":null,"errorCode":null,"errorMessage":null,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","startedAt":null,"finishedAt":null}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}},"default":{"description":"Operation-specific error. Inspect error/code before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_f0ac5d10cc90"},"example":{"code":"example","error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/optimisation/retarget-jobs/1/cancel' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/users/search":{"get":{"operationId":"get-users-search","tags":["articles"],"summary":"GET /api/users/search","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/users/search?q=Explain+the+data+used+in+this+research.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_a9230097cb45"},{"$ref":"#/components/schemas/Response___object_f68e9454df13"}]},"example":{"results":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/users/search?q=Explain+the+data+used+in+this+research.' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/users/{id}":{"get":{"operationId":"get-users-id","tags":["articles"],"summary":"GET /api/users/:id","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/users/1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_bfe26a16cff6"},"example":{"user":{"id":1,"displayName":"Example research","followersCount":1,"followingCount":1,"isFollowing":false,"isSelf":false},"isPublicProfile":false,"backtests":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}},"404":{"description":"Resource or enabled capability not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/users/1'"}]}},"/api/users/{id}/follow":{"post":{"operationId":"post-users-id-follow","tags":["articles"],"summary":"POST /api/users/:id/follow","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/users/1/follow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_56bfabb2043e"},"example":{"status":"example","user":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request POST \\\n  'https://api.weavers.app/api/users/1/follow' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]},"delete":{"operationId":"delete-users-id-follow","tags":["articles"],"summary":"DELETE /api/users/:id/follow","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.\n\nProtected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header."],"x-example-url":"https://api.weavers.app/api/users/1/follow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"https://weavers.app"},"description":"An origin allowed by this deployment."},{"name":"X-CSRF-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Must match the CSRF cookie issued to this browser."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_56bfabb2043e"},"example":{"status":"example","user":null}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"}]},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request DELETE \\\n  'https://api.weavers.app/api/users/1/follow' \\\n  --cookie cookies.txt --cookie-jar cookies.txt \\\n  --header 'Origin: https://weavers.app' \\\n  --header \"X-CSRF-Token: ${CSRF_TOKEN}\""}]}},"/api/users/{id}/followers":{"get":{"operationId":"get-users-id-followers","tags":["articles"],"summary":"GET /api/users/:id/followers","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/users/1/followers","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7aa15ca58a69"},"example":{"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/users/1/followers'"}]}},"/api/users/{id}/following":{"get":{"operationId":"get-users-id-following","tags":["articles"],"summary":"GET /api/users/:id/following","description":"","x-access":"anonymous","x-notes":[],"x-example-url":"https://api.weavers.app/api/users/1/following","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7aa15ca58a69"},"example":{"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}}},"security":[],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/users/1/following'"}]}},"/api/me/following":{"get":{"operationId":"get-me-following","tags":["articles"],"summary":"GET /api/me/following","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/me/following","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_7aa15ca58a69"},"example":{"items":[]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_3c6cb6745f38"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/me/following' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}},"/api/watchlist":{"get":{"operationId":"get-watchlist","tags":["market-data"],"summary":"GET /api/watchlist","description":"Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.","x-access":"account","x-notes":["Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests."],"x-example-url":"https://api.weavers.app/api/watchlist","parameters":[{"name":"tab","in":"query","required":false,"schema":{"type":"string"}},{"name":"cache","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_WatchlistResponse_fd335c8cb427"},"example":{"tab":"latest","items":[],"updatedAt":"2025-01-01T00:00:00.000Z"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b1317e890ba0"},"example":{"error":"example"}}}},"401":{"description":"Authentication is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"403":{"description":"Permission, origin or CSRF check failed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}},"required":[],"additionalProperties":true,"description":"Error envelopes can include resource-specific details. Check the status before reading these fields."},"example":{}}}},"429":{"description":"Rate limit reached; honor Retry-After when supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b1317e890ba0"},"example":{"error":"example"}}}},"500":{"description":"Server failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response___object_b1317e890ba0"},"example":{"error":"example"}}}}},"security":[{"WeaversSession":[]},{"WeaversBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL (POSIX shell)","source":"curl --include \\\n  --request GET \\\n  'https://api.weavers.app/api/watchlist' \\\n  --cookie cookies.txt --cookie-jar cookies.txt"}]}}},"components":{"securitySchemes":{"WeaversBearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"A valid session bearer token verified by the server; not an arbitrary API key. CSRF checks still apply to protected writes."},"WeaversSession":{"type":"apiKey","in":"cookie","name":"token","description":"Session established by the Weavers sign-in flow. See /docs/api/authentication for deployed cookie and CSRF behavior."}},"schemas":{"Response___object_daf417c46ab6":{"type":"object","properties":{"articles":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_016ca4b08ee6"}},"nextCursor":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___object_2090c04fa3fd"}]}},"additionalProperties":true,"required":["articles","nextCursor"]},"Response___object_016ca4b08ee6":{"type":"object","properties":{"isUnlocked":{"type":"boolean"},"unlockCost":{"anyOf":[{"type":"null"},{"type":"number"}]},"lockedReason":{"anyOf":[{"type":"null"},{"type":"string","const":"auth_required"},{"type":"string","const":"entitlement_required"}]},"likes":{"type":"number"},"liked":{"type":"boolean"},"saved":{"type":"boolean"},"id":{"type":"string"},"kind":{"enum":["signal","report"]},"articleType":{"enum":["upward_channel","downward_channel","generic"]},"symbol":{"type":"string"},"instrumentName":{"anyOf":[{"type":"null"},{"type":"string"}]},"assetType":{"anyOf":[{"type":"null"},{"type":"string","const":"ETF"},{"type":"string","const":"Stock"}]},"timeframe":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"url":{"type":"string"},"sourceName":{"type":"string"},"publishedAt":{"type":"string"},"readingTime":{"type":"string"},"coverImage":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"reactions":{"type":"number"},"comments":{"type":"number"},"accessTier":{"enum":["free","premium"]},"presentation":{"$ref":"#/components/schemas/Response_ArticlePresentation_5468b2044fbd"},"strategy":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_5be1edbca869"}]}},"additionalProperties":true,"required":["isUnlocked","unlockCost","lockedReason","likes","liked","saved","id","kind","articleType","symbol","instrumentName","assetType","timeframe","title","summary","url","sourceName","publishedAt","readingTime","coverImage","tags","reactions","comments","accessTier","strategy"]},"Response_ArticlePresentation_5468b2044fbd":{"type":"object","properties":{"symbol":{"type":"string"},"timeframe":{"type":"string"},"direction":{"enum":["upward","downward"]},"publishedAt":{"type":"string"},"windowSize":{"type":"number"},"summary":{"type":"string"},"candles":{"type":"array","items":{"$ref":"#/components/schemas/Response_ReplayCandle_69402cf0ed50"}}},"additionalProperties":true,"required":["symbol","timeframe","direction","publishedAt","windowSize","summary","candles"]},"Response_ReplayCandle_69402cf0ed50":{"type":"object","properties":{"time":{"type":"string"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"}},"additionalProperties":true,"required":["time","open","high","low","close"]},"Response___type_5be1edbca869":{"type":"object","properties":{"strategyRegistryId":{"anyOf":[{"type":"null"},{"type":"number"}]},"strategyKey":{"type":"string"},"strategyVariant":{"type":"string"},"strategyId":{"anyOf":[{"type":"null"},{"type":"string"}]},"alias":{"anyOf":[{"type":"null"},{"type":"string"}]},"displayName":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["strategyRegistryId","strategyKey","strategyVariant","strategyId","alias","displayName"]},"Response___object_2090c04fa3fd":{"type":"object","properties":{"publishedAt":{"type":"string"},"id":{"type":"string"}},"additionalProperties":true,"required":["publishedAt","id"]},"Response___object_2ba29b3338ac":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_ab11fd79f47a":{"type":"object","properties":{"article":{"$ref":"#/components/schemas/Response___object_d8d5c20bbe27"}},"additionalProperties":true,"required":["article"]},"Response___object_d8d5c20bbe27":{"type":"object","properties":{"id":{"type":"string"},"symbol":{"type":"string"},"strategy":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_5be1edbca869"}]},"title":{"type":"string"},"summary":{"type":"string"},"url":{"type":"string"},"sourceName":{"type":"string"},"publishedAt":{"type":"string"},"readingTime":{"type":"string"},"coverImage":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"reactions":{"type":"number"},"kind":{"enum":["signal","report"]},"outboxId":{"type":"number"},"channelId":{"type":"number"},"timeframe":{"type":"string"},"windowSize":{"type":"number"},"direction":{"anyOf":[{"type":"null"},{"type":"string"}]},"bodyKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"bodyFormat":{"type":"string"},"body":{"type":"string"},"updatedAt":{"type":"string"},"accessTier":{"enum":["free","premium"]},"isUnlocked":{"type":"boolean"},"unlockCost":{"anyOf":[{"type":"null"},{"type":"number"}]},"lockedReason":{"anyOf":[{"type":"null"},{"type":"string","const":"auth_required"},{"type":"string","const":"entitlement_required"}]}},"additionalProperties":true,"required":["id","symbol","strategy","title","summary","url","sourceName","publishedAt","readingTime","coverImage","tags","reactions","kind","outboxId","channelId","timeframe","windowSize","direction","bodyKey","bodyFormat","body","updatedAt","accessTier","isUnlocked","unlockCost","lockedReason"]},"Response___object_8c62f7aa6cd0":{"type":"object","properties":{"isUnlocked":{"type":"boolean"},"unlockCost":{"anyOf":[{"type":"null"},{"type":"number"}]},"lockedReason":{"anyOf":[{"type":"null"},{"type":"string","const":"auth_required"},{"type":"string","const":"entitlement_required"}]},"error":{"type":"string"},"accessTier":{"type":"string","const":"premium"}},"additionalProperties":true,"required":["isUnlocked","unlockCost","lockedReason","error","accessTier"]},"Response___object_40a5b77ec00e":{"type":"object","properties":{"isUnlocked":{"type":"boolean"},"unlockCost":{"anyOf":[{"type":"null"},{"type":"number"}]},"lockedReason":{"anyOf":[{"type":"null"},{"type":"string","const":"auth_required"},{"type":"string","const":"entitlement_required"}]},"error":{"type":"string"},"entitlementKey":{"type":"string","const":"premium_article_card"},"price":{"type":"number","const":15},"accessTier":{"type":"string","const":"premium"}},"additionalProperties":true,"required":["isUnlocked","unlockCost","lockedReason","error","entitlementKey","price","accessTier"]},"Response___object_9c63d0de4319":{"type":"object","properties":{"error":{"type":"string"},"entitlementKey":{"type":"string","const":"premium_article_card"},"price":{"type":"number","const":15}},"additionalProperties":true,"required":["error","entitlementKey","price"]},"Response___object_3fe79cb805b5":{"type":"object","properties":{"status":{"type":"string"},"articleId":{"type":"string"},"accessTier":{"type":"string","const":"free"},"isUnlocked":{"type":"boolean"},"unlockCost":{"type":"null"},"lockedReason":{"type":"null"}},"additionalProperties":true,"required":["status","articleId","accessTier","isUnlocked","unlockCost","lockedReason"]},"Response___object_9364c72bea2b":{"type":"object","properties":{"status":{"type":"string"},"articleId":{"type":"string"},"accessTier":{"type":"string","const":"premium"},"isUnlocked":{"type":"boolean"},"unlockCost":{"type":"null"},"lockedReason":{"type":"null"},"entitlement":{"$ref":"#/components/schemas/Response___object_77276662d016"}},"additionalProperties":true,"required":["status","articleId","accessTier","isUnlocked","unlockCost","lockedReason","entitlement"]},"Response___object_77276662d016":{"type":"object","properties":{"key":{"type":"string"},"scope":{"type":"string"},"expiresAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["key","scope","expiresAt","createdAt"]},"Response___object_9ac0084460ba":{"type":"object","properties":{"status":{"type":"string"},"articleId":{"type":"string"},"accessTier":{"type":"string","const":"premium"},"isUnlocked":{"type":"boolean"},"unlockCost":{"type":"null"},"lockedReason":{"type":"null"},"balance":{"type":"number"},"wallets":{"$ref":"#/components/schemas/Response_WalletBalances_481030fdedb3"},"entitlement":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___object_77276662d016"}]}},"additionalProperties":true,"required":["status","articleId","accessTier","isUnlocked","unlockCost","lockedReason","balance","wallets","entitlement"]},"Response_WalletBalances_481030fdedb3":{"type":"object","properties":{"earned":{"type":"number"},"promo":{"type":"number"},"purchased":{"type":"number"},"total":{"type":"number"}},"additionalProperties":true,"required":["earned","promo","purchased","total"]},"Response___object_370ba8325685":{"type":"object","properties":{"error":{"type":"string"},"missing":{"type":"number"},"balance":{"type":"number"},"wallets":{"$ref":"#/components/schemas/Response_WalletBalances_481030fdedb3"},"unlockCost":{"type":"number","const":15}},"additionalProperties":true,"required":["error","missing","balance","wallets","unlockCost"]},"Response___object_3736ae30e6f4":{"type":"object","properties":{"growth":{"$ref":"#/components/schemas/Response_ArticleReplayGrowthSnapshot_717f00a552c5"}},"additionalProperties":true,"required":["growth"]},"Response_ArticleReplayGrowthSnapshot_717f00a552c5":{"type":"object","properties":{"articleId":{"type":"string"},"boundaryTime":{"type":"string"},"baselineClose":{"type":"number"},"finalClose":{"type":"number"},"growthPercent":{"type":"number"},"barsRequired":{"type":"number"},"barsAvailable":{"type":"number"},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["articleId","boundaryTime","baselineClose","finalClose","growthPercent","barsRequired","barsAvailable","updatedAt"]},"Response___object_b0fdb236c283":{"type":"object","properties":{"replay":{"$ref":"#/components/schemas/Response_ArticleReplay_b68e15348885"}},"additionalProperties":true,"required":["replay"]},"Response_ArticleReplay_b68e15348885":{"type":"object","properties":{"articleId":{"type":"string"},"symbol":{"type":"string"},"timeframe":{"type":"string"},"boundaryTime":{"type":"string"},"barsRequired":{"type":"number"},"barsAvailable":{"type":"number"},"canPlay":{"type":"boolean"},"prePublishCandles":{"type":"array","items":{"$ref":"#/components/schemas/Response_ReplayCandle_69402cf0ed50"}},"postPublishCandles":{"type":"array","items":{"$ref":"#/components/schemas/Response_ReplayCandle_69402cf0ed50"}},"updatedAt":{"type":"string"},"style":{"$ref":"#/components/schemas/Response_ReplayChartStyle_fc4a52a8b74c"}},"additionalProperties":true,"required":["articleId","symbol","timeframe","boundaryTime","barsRequired","barsAvailable","canPlay","prePublishCandles","postPublishCandles","updatedAt"]},"Response_ReplayChartStyle_fc4a52a8b74c":{"type":"object","properties":{"surfaceBg":{"type":"string"},"plotBg":{"type":"string"},"gridLine":{"type":"string"},"boundaryLine":{"type":"string"},"futureRegion":{"type":"string"},"bullBody":{"type":"string"},"bullWick":{"type":"string"},"bearBody":{"type":"string"},"bearWick":{"type":"string"},"neutralBody":{"type":"string"},"neutralWick":{"type":"string"},"labelPrimary":{"type":"string"},"labelSecondary":{"type":"string"}},"additionalProperties":true,"required":["surfaceBg","plotBg","gridLine","boundaryLine","futureRegion","bullBody","bullWick","bearBody","bearWick","neutralBody","neutralWick","labelPrimary","labelSecondary"]},"Response___object_f3777587c050":{"type":"object","properties":{"shared":{"type":"boolean"},"type":{"type":"string"},"coins":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_1e4e74b7a263"},{"$ref":"#/components/schemas/Response___type_f1c0dd1d4d06"},{"$ref":"#/components/schemas/Response___type_a5d9acbe4ffa"}]}},"additionalProperties":true,"required":["shared","type","coins"]},"Response___type_1e4e74b7a263":{"type":"object","properties":{"status":{"type":"string","const":"awarded"},"balance":{"type":"number"},"cap":{"type":"number"},"used":{"type":"number"},"timezone":{"type":"string"},"localDate":{"type":"string"},"resetsAt":{"type":"string"}},"additionalProperties":true,"required":["status","balance"]},"Response___type_f1c0dd1d4d06":{"type":"object","properties":{"status":{"type":"string","const":"already_awarded"},"cap":{"type":"number"},"used":{"type":"number"},"timezone":{"type":"string"},"localDate":{"type":"string"},"resetsAt":{"type":"string"}},"additionalProperties":true,"required":["status"]},"Response___type_a5d9acbe4ffa":{"type":"object","properties":{"status":{"type":"string","const":"daily_cap_reached"},"balance":{"type":"number"},"cap":{"type":"number"},"used":{"type":"number"},"timezone":{"type":"string"},"localDate":{"type":"string"},"resetsAt":{"type":"string"}},"additionalProperties":true,"required":["status","balance","cap","used","timezone","localDate","resetsAt"]},"Response___object_f4dee90babe6":{"type":"object","properties":{"liked":{"type":"boolean"}},"additionalProperties":true,"required":["liked"]},"Response___object_a72ab11aee14":{"type":"object","properties":{"saved":{"type":"boolean"}},"additionalProperties":true,"required":["saved"]},"Response_ArticleInteractions_2613f1b94fb6":{"type":"object","properties":{"likes":{"type":"number"},"shares":{"type":"number"},"liked":{"type":"boolean"},"saved":{"type":"boolean"},"shared":{"type":"boolean"},"copied":{"type":"boolean"}},"additionalProperties":true,"required":["likes","shares","liked","saved","shared","copied"]},"Response___object_c872820c0bce":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_ArticleLikeUser_3298ea3782db"}}},"additionalProperties":true,"required":["items"]},"Response_ArticleLikeUser_3298ea3782db":{"type":"object","properties":{"id":{"type":"number"},"displayName":{"type":"string"},"avatarUrl":{"anyOf":[{"type":"null"},{"type":"string"}]},"likedAt":{"type":"string"}},"additionalProperties":true,"required":["id","displayName","likedAt"]},"Response_ArticleCommentDTO_43156981d258":{"type":"object","properties":{"id":{"type":"number"},"articleId":{"type":"string"},"userId":{"type":"number"},"displayName":{"type":"string"},"avatarUrl":{"anyOf":[{"type":"null"},{"type":"string"}]},"text":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"deletedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"parentId":{"anyOf":[{"type":"null"},{"type":"number"}]},"isOwner":{"type":"boolean"},"isDeleted":{"type":"boolean"}},"additionalProperties":true,"required":["id","articleId","userId","displayName","text","createdAt","updatedAt","deletedAt","parentId","isOwner","isDeleted"]},"Response___object_8344b1d24b1b":{"type":"object","properties":{"message":{"type":"string"},"existingUser":{"type":"boolean"},"verified":{"type":"boolean"}},"additionalProperties":true,"required":["message","existingUser","verified"]},"Response___type_3235e8d0be36":{"type":"object","properties":{"message":{"type":"string"},"existingUser":{"type":"boolean"},"verified":{"type":"boolean"},"verificationUrl":{"type":"string"}},"additionalProperties":true,"required":["message","existingUser","verified"]},"Response___type_bc1c08887334":{"type":"object","properties":{"message":{"type":"string"},"user":{"$ref":"#/components/schemas/Response___type_42b26989ffbd"},"requiresVerification":{"type":"boolean"},"avatarDeferred":{"enum":[false,true]},"verificationUrl":{"type":"string"}},"additionalProperties":true,"required":["message","user","requiresVerification"]},"Response___type_42b26989ffbd":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"email":{"type":"string"}},"additionalProperties":true,"required":["id","name","email"]},"Response___object_f7134cc8b6d1":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_48298f881db4":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"existingUser":{"type":"boolean"},"authProvider":{"type":"string"}},"additionalProperties":true,"required":["error","message","existingUser","authProvider"]},"Response___object_14a73d402595":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"existingUser":{"type":"boolean"},"verified":{"type":"boolean"}},"additionalProperties":true,"required":["error","message","existingUser","verified"]},"Response___object_fa13e14a114b":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"existingUser":{"type":"boolean"}},"additionalProperties":true,"required":["error","message","existingUser"]},"Response___object_4dbf449010f0":{"type":"object","properties":{"message":{"type":"string"},"alreadyVerified":{"type":"boolean"}},"additionalProperties":true,"required":["message","alreadyVerified"]},"Response___object_47ff54077db8":{"type":"object","properties":{"message":{"type":"string"},"user":{"$ref":"#/components/schemas/Response___object_42b26989ffbd"}},"additionalProperties":true,"required":["message","user"]},"Response___object_42b26989ffbd":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"email":{"type":"string"}},"additionalProperties":true,"required":["id","name","email"]},"Response___object_82dfe35028be":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true,"required":["error","message"]},"Response___object_f81d949695d5":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_601429d306a4":{"type":"object","properties":{"message":{"type":"string"},"user":{"$ref":"#/components/schemas/Response___object_42b26989ffbd"},"coinAward":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___object_c0df9edcb87b"}]}},"additionalProperties":true,"required":["message","user","coinAward"]},"Response___object_c0df9edcb87b":{"type":"object","properties":{"amount":{"type":"number"},"balance":{"type":"number"}},"additionalProperties":true,"required":["amount","balance"]},"Response___object_62fa864b5c33":{"type":"object","properties":{"message":{"type":"string"}},"additionalProperties":true,"required":["message"]},"Response___object_d2effc9da755":{"type":"object","properties":{},"additionalProperties":true},"Response___object_8d83505f5a85":{"type":"object","properties":{"authenticated":{"type":"boolean"},"user":{"$ref":"#/components/schemas/Response_AuthenticatedUser_65bf652245d9"}},"additionalProperties":true,"required":["authenticated","user"]},"Response_AuthenticatedUser_65bf652245d9":{"type":"object","properties":{"id":{"type":"number"},"email":{"type":"string"}},"additionalProperties":true,"required":["id","email"]},"Response___object_0b42e5590a78":{"type":"object","properties":{"authenticated":{"type":"boolean"}},"additionalProperties":true,"required":["authenticated"]},"Response___object_7c363fed2b50":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response_BacktestChartPayload_f923d6f5e24b":{"type":"object","properties":{"interval":{"enum":["1D","1H","4H","1M","5M","15M","30M","1W"]},"requestedInterval":{"enum":["1D","1H","4H","1M","5M","15M","30M","1W"]},"candles":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestCandle_335f7e65d597"}},"timezone":{"type":"string"},"equityCurve":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestEquityPoint_41c94dc54a98"}},"signals":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestSignal_df1193b0f476"}},"indicators":{"$ref":"#/components/schemas/Response_BacktestIndicators_c8ce90e34911"}},"additionalProperties":true,"required":["interval","candles"]},"Response_BacktestCandle_335f7e65d597":{"type":"object","properties":{"timestamp":{"type":"string"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"},"volume":{"type":"number"}},"additionalProperties":true,"required":["timestamp","open","high","low","close"]},"Response_BacktestEquityPoint_41c94dc54a98":{"type":"object","properties":{"timestamp":{"type":"string"},"value":{"type":"number"}},"additionalProperties":true,"required":["timestamp","value"]},"Response_BacktestSignal_df1193b0f476":{"type":"object","properties":{"timestamp":{"type":"string"},"price":{"type":"number"},"type":{"enum":["entry","exit"]},"side":{"enum":["long","short"]},"reason":{"type":"string"}},"additionalProperties":true,"required":["timestamp","price","type","side"]},"Response_BacktestIndicators_c8ce90e34911":{"type":"object","properties":{"smaFast":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestEquityPoint_41c94dc54a98"}},"smaSlow":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestEquityPoint_41c94dc54a98"}},"ema":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestEquityPoint_41c94dc54a98"}},"emaFast":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestEquityPoint_41c94dc54a98"}},"emaSlow":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestEquityPoint_41c94dc54a98"}},"rsi":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestEquityPoint_41c94dc54a98"}},"stochK":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestEquityPoint_41c94dc54a98"}},"stochD":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestEquityPoint_41c94dc54a98"}}},"additionalProperties":true},"Response___object_9a316035a35b":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_8f25e66bccaa":{"type":"object","properties":{"error":{"type":"string"},"entitlementKey":{"type":"string"},"price":{"type":"number","const":30},"scope":{"type":"string"}},"additionalProperties":true,"required":["error","entitlementKey","price","scope"]},"Response_BacktestAcceptedResponse_87bfaa1c71f0":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"enum":["accepted","queued"]},"message":{"type":"string"}},"additionalProperties":true,"required":["jobId","status","message"]},"Response___object_86f24c6f113f":{"type":"object","properties":{"error":{"type":"string","const":"entitlement_required"},"entitlementKey":{"type":"string","const":"advanced_indicators"},"price":{"type":"number","const":30},"scope":{"type":"string"}},"additionalProperties":true,"required":["error","entitlementKey","price","scope"]},"Response___object_c598e383c298":{"type":"object","properties":{"error":{"type":"string","const":"insufficient_funds"},"missing":{"type":"number"},"balance":{"type":"number"},"unlockCost":{"type":"number","const":80}},"additionalProperties":true,"required":["error","missing","balance","unlockCost"]},"Response_BacktestStatusResponse_abffef5f05ed":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"enum":["running","failed","cancelled","queued","completed"]},"progress":{"type":"number"},"startedAt":{"type":"string"},"finishedAt":{"type":"string"},"result":{"$ref":"#/components/schemas/Response_BacktestResultSummary_57509548d06a"},"error":{"type":"string"}},"additionalProperties":true,"required":["jobId","status"]},"Response_BacktestResultSummary_57509548d06a":{"type":"object","properties":{"totalReturn":{"type":"number"},"maxDrawdown":{"type":"number"},"winRate":{"type":"number"},"trades":{"type":"number"},"sharpeRatio":{"type":"number"},"sortinoRatio":{"type":"number"},"calmarRatio":{"type":"number"},"equityCurveUrl":{"type":"string"},"chart":{"$ref":"#/components/schemas/Response_BacktestChartPayload_f923d6f5e24b"}},"additionalProperties":true},"Response___object_39b14100a84b":{"type":"object","properties":{"error":{"type":"string"},"code":{"enum":["job_not_found","owner_metadata_missing","owner_mismatch"]}},"additionalProperties":true,"required":["error","code"]},"Response___object_657442a55485":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestSummaryDTO_18d4815d8be6"}},"truncated":{"type":"boolean"}},"additionalProperties":true,"required":["items","truncated"]},"Response_BacktestSummaryDTO_18d4815d8be6":{"type":"object","properties":{"id":{"type":"string"},"strategyName":{"type":"string"},"strategyId":{"anyOf":[{"type":"null"},{"type":"string"}]},"symbol":{"type":"string"},"interval":{"type":"string"},"startedAt":{"type":"string"},"status":{"enum":["running","success","failed"]},"userId":{"type":"number"},"userDisplayName":{"anyOf":[{"type":"null"},{"type":"string"}]},"userAvatarUrl":{"anyOf":[{"type":"null"},{"type":"string"}]},"resultSummary":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_dfd2450137d0"}]},"link":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["id","strategyName","symbol","interval","startedAt","status"]},"Response___type_dfd2450137d0":{"type":"object","properties":{"pnlPercent":{"type":"number"},"sharpe":{"type":"number"},"maxDrawdown":{"type":"number"},"winRate":{"type":"number"}},"additionalProperties":true},"Response___object_b2ebc1eddb1f":{"type":"object","properties":{"defaultProviderId":{"enum":["alpaca","tradier","oanda","ibkr"]},"providers":{"type":"array","items":{"$ref":"#/components/schemas/Response_BrokerProviderCatalogItem_1be143af1887"}}},"additionalProperties":true,"required":["defaultProviderId","providers"]},"Response_BrokerProviderCatalogItem_1be143af1887":{"type":"object","properties":{"id":{"enum":["alpaca","tradier","oanda","ibkr"]},"label":{"type":"string"},"description":{"type":"string"},"connectModes":{"type":"array","items":{"enum":["api_key","oauth"]}},"availability":{"enum":["available","coming_soon"]},"paperTradingSupported":{"type":"boolean"},"liveTradingSupported":{"type":"boolean"},"enabledConnectModes":{"type":"array","items":{"enum":["api_key","oauth"]}},"oauthStartPath":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["id","label","description","connectModes","availability","paperTradingSupported","liveTradingSupported","enabledConnectModes","oauthStartPath"]},"Response___object_f380737f0ad7":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_be5d2b1500b1":{"type":"object","properties":{"connected":{"type":"boolean"},"providerId":{"enum":["alpaca","tradier","oanda","ibkr"]},"providerLabel":{"type":"string"},"connectMode":{"type":"string","const":"api_key"},"environment":{"enum":["paper","live"]},"accountId":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["connected","providerId","providerLabel","connectMode","environment","accountId"]},"Response___object_fdbbc0377ba5":{"type":"object","properties":{"connected":{"type":"boolean"},"providerId":{"enum":["alpaca","tradier","oanda","ibkr"]},"providerLabel":{"type":"string"}},"additionalProperties":true,"required":["connected","providerId","providerLabel"]},"Response___object_d2610e327a6d":{"type":"object","properties":{"connected":{"type":"boolean"},"providerId":{"enum":["alpaca","tradier","oanda","ibkr"]},"providerLabel":{"type":"string"},"connectMode":{"enum":["api_key","oauth"]},"environment":{"enum":["paper","live"]},"accountId":{"anyOf":[{"type":"null"},{"type":"string"}]},"lastValidatedAt":{"type":"string"},"expiresAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["connected","providerId","providerLabel","connectMode","environment","accountId","lastValidatedAt","expiresAt"]},"Response___object_f12d14f68fbd":{"type":"object","properties":{"disconnected":{"type":"boolean"},"removed":{"type":"boolean"},"providerId":{"enum":["alpaca","tradier","oanda","ibkr"]}},"additionalProperties":true,"required":["disconnected","removed","providerId"]},"Response___object_92df8d4bd61d":{"type":"object","properties":{"providerId":{"enum":["alpaca","tradier","oanda","ibkr"]},"order":{"$ref":"#/components/schemas/Response___object_f0bc66cdac0e"}},"additionalProperties":true,"required":["providerId","order"]},"Response___object_f0bc66cdac0e":{"type":"object","properties":{"id":{"type":"string"},"symbol":{"type":"string"},"side":{"enum":["buy","sell"]},"qty":{"type":"number"},"status":{"type":"string"},"filledQty":{"type":"number"},"filledAvgPrice":{"anyOf":[{"type":"null"},{"type":"number"}]},"submittedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["id","symbol","side","qty","status","filledQty","filledAvgPrice","submittedAt"]},"Response___object_34bc64eaa122":{"type":"object","properties":{"providerId":{"enum":["alpaca","tradier","oanda","ibkr"]},"orders":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_f0bc66cdac0e"}}},"additionalProperties":true,"required":["providerId","orders"]},"Response___object_5cc0554d9f03":{"type":"object","properties":{"providerId":{"enum":["alpaca","tradier","oanda","ibkr"]},"nextBeforeId":{"anyOf":[{"type":"null"},{"type":"number"}]},"orders":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_79c5ee69dc0f"}}},"additionalProperties":true,"required":["providerId","nextBeforeId","orders"]},"Response___object_79c5ee69dc0f":{"type":"object","properties":{"id":{"type":"string"},"symbol":{"type":"string"},"side":{"enum":["buy","sell"]},"qty":{"type":"number"},"status":{"type":"string"},"filledQty":{"type":"number"},"filledAvgPrice":{"anyOf":[{"type":"null"},{"type":"number"}]},"submittedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"accountId":{"anyOf":[{"type":"null"},{"type":"string"}]},"connectMode":{"enum":["api_key","oauth"]},"environment":{"enum":["paper","live"]},"clientOrderId":{"anyOf":[{"type":"null"},{"type":"string"}]},"recordedAt":{"type":"string"},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["id","symbol","side","qty","status","filledQty","filledAvgPrice","submittedAt","accountId","connectMode","environment","clientOrderId","recordedAt","updatedAt"]},"Response___object_0fd0e02c7e6a":{"type":"object","properties":{"providerId":{"enum":["alpaca","tradier","oanda","ibkr"]},"positions":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_03566907cf3c"}},"summary":{"$ref":"#/components/schemas/Response___type_e4bc43e64ba6"}},"additionalProperties":true,"required":["providerId","positions","summary"]},"Response___object_03566907cf3c":{"type":"object","properties":{"symbol":{"type":"string"},"side":{"enum":["long","short"]},"qty":{"type":"number"},"avgEntryPrice":{"type":"number"},"costBasis":{"type":"number"},"realizedPnl":{"type":"number"},"lastTradeAt":{"type":"string"}},"additionalProperties":true,"required":["symbol","side","qty","avgEntryPrice","costBasis","realizedPnl","lastTradeAt"]},"Response___type_e4bc43e64ba6":{"type":"object","properties":{"openPositionCount":{"type":"number"},"grossCostBasis":{"type":"number"},"realizedPnlTotal":{"type":"number"}},"additionalProperties":true,"required":["openPositionCount","grossCostBasis","realizedPnlTotal"]},"Response___object_40d3bcc2280a":{"type":"object","properties":{"providerId":{"enum":["alpaca","tradier","oanda","ibkr"]},"points":{"type":"array","items":{"$ref":"#/components/schemas/Response_BrokerManualEquityPoint_4089f23a7844"}},"summary":{"$ref":"#/components/schemas/Response___type_33efd119e468"}},"additionalProperties":true,"required":["providerId","points","summary"]},"Response_BrokerManualEquityPoint_4089f23a7844":{"type":"object","properties":{"tradingDay":{"type":"string"},"realizedPnl":{"type":"number"},"cumulativeRealizedPnl":{"type":"number"},"equity":{"type":"number"}},"additionalProperties":true,"required":["tradingDay","realizedPnl","cumulativeRealizedPnl","equity"]},"Response___type_33efd119e468":{"type":"object","properties":{"startingEquity":{"type":"number"},"endingEquity":{"type":"number"},"realizedPnlTotal":{"type":"number"},"dayCount":{"type":"number"},"lastUpdatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["startingEquity","endingEquity","realizedPnlTotal","dayCount","lastUpdatedAt"]},"Response___object_eb7327a01de2":{"type":"object","properties":{"symbol":{"type":"string"},"timeframe":{"type":"string"},"windowSize":{"type":"number"},"channels":{"type":"array","items":{"$ref":"#/components/schemas/Response_ChannelRow_426f2c501e27"}}},"additionalProperties":true,"required":["symbol","channels"]},"Response_ChannelRow_426f2c501e27":{"type":"object","properties":{"id":{"type":"number"},"indexId":{"type":"number"},"timeframe":{"type":"string"},"windowSize":{"type":"number"},"startTimestamp":{"type":"string"},"endTimestamp":{"type":"string"},"startDay":{"type":"string"},"endDay":{"type":"string"},"direction":{"type":"string"},"isValid":{"type":"boolean"},"slope":{"type":"number"},"intercept":{"type":"number"},"upperOffset":{"type":"number"},"lowerOffset":{"type":"number"},"startMid":{"type":"number"},"endMid":{"type":"number"},"startUpper":{"type":"number"},"endUpper":{"type":"number"},"startLower":{"type":"number"},"endLower":{"type":"number"},"r2":{"type":"number"},"inBandRatio":{"type":"number"},"points":{"type":"number"},"algoVersion":{"type":"string"},"dataSource":{"type":"string"},"computedAt":{"type":"string"}},"additionalProperties":true,"required":["id","indexId","timeframe","windowSize","startTimestamp","endTimestamp","startDay","endDay","direction","isValid","slope","intercept","upperOffset","lowerOffset","startMid","endMid","startUpper","endUpper","startLower","endLower","r2","inBandRatio","points","algoVersion","dataSource","computedAt"]},"Response___object_8b95965b1c40":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response_ChatOrchestratorOutput_abdfc575cd66":{"type":"object","properties":{"reply":{"type":"string"},"conversationId":{"type":"string"},"provider":{"type":"string"}},"additionalProperties":true,"required":["reply","conversationId","provider"]},"Response___object_90dc173d7a10":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_a2c2c625217a":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response_Object_0cbe6896d3b6":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_ChatConversationRecord_cd30e666a537"}},"nextCursor":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_Object_b58222cf585e"}]}},"additionalProperties":true,"required":["items","nextCursor"]},"Response_ChatConversationRecord_cd30e666a537":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"number"},"title":{"type":"string"},"status":{"enum":["active","archived"]},"modelId":{"type":"string"},"contextSummary":{"type":"string"},"summaryUpdatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"lastMessageAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"preview":{"anyOf":[{"type":"null"},{"type":"string"}]},"messageCount":{"type":"number"},"metadata":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["id","userId","title","status","modelId","contextSummary","summaryUpdatedAt","lastMessageAt","createdAt","updatedAt","preview","messageCount","metadata"]},"Response_Record_c64b3af77a06":{"type":"object","properties":{},"additionalProperties":{"description":"JSON value whose shape is determined by the resource or provider."}},"Response_Object_b58222cf585e":{"type":"object","properties":{"id":{"type":"string"},"lastMessageAt":{"type":"string"}},"additionalProperties":true,"required":["id","lastMessageAt"]},"Response_ChatHistoryPage_f07f5cb397b5":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_ChatMessageRecord_f015326eaf8c"}},"nextCursor":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_ChatPageCursor_0586aa014a09"}]}},"additionalProperties":true,"required":["items","nextCursor"]},"Response_ChatMessageRecord_f015326eaf8c":{"type":"object","properties":{"id":{"type":"string"},"conversationId":{"type":"string"},"role":{"enum":["user","assistant","system","tool"]},"content":{"type":"string"},"toolName":{"anyOf":[{"type":"null"},{"type":"string"}]},"toolCallId":{"anyOf":[{"type":"null"},{"type":"string"}]},"metadata":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"promptTokens":{"type":"number"},"completionTokens":{"type":"number"},"totalTokens":{"type":"number"},"latencyMs":{"anyOf":[{"type":"null"},{"type":"number"}]},"errorCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["id","conversationId","role","content","toolName","toolCallId","metadata","promptTokens","completionTokens","totalTokens","latencyMs","errorCode","createdAt"]},"Response_ChatPageCursor_0586aa014a09":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true,"required":["id"]},"Response___object_e1897c568ac8":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_CreditGiftListEntry_d3cb03b119d3"}}},"additionalProperties":true,"required":["items"]},"Response_CreditGiftListEntry_d3cb03b119d3":{"type":"object","properties":{"id":{"type":"number"},"amount":{"type":"number"},"status":{"enum":["failed","completed"]},"createdAt":{"type":"string"},"senderUserId":{"type":"number"},"recipientUserId":{"type":"number"},"counterpartUserId":{"type":"number"},"counterpartDisplayName":{"anyOf":[{"type":"null"},{"type":"string"}]},"counterpartAvatarUrl":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["id","amount","status","createdAt","senderUserId","recipientUserId","counterpartUserId","counterpartDisplayName","counterpartAvatarUrl"]},"Response___object_8b85ec787d91":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_d7d6300c546c":{"type":"object","properties":{"status":{"enum":["sent","already_sent"]},"gift":{"$ref":"#/components/schemas/Response_CreditGiftEntry_8121a487c561"},"balance":{"type":"number"},"wallets":{"$ref":"#/components/schemas/Response_WalletBalances_481030fdedb3"},"recipientBalance":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["status","gift","balance","wallets","recipientBalance"]},"Response_CreditGiftEntry_8121a487c561":{"type":"object","properties":{"id":{"type":"number"},"senderUserId":{"type":"number"},"recipientUserId":{"type":"number"},"amount":{"type":"number"},"status":{"enum":["failed","completed"]},"idempotencyKey":{"type":"string"},"metadata":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["id","senderUserId","recipientUserId","amount","status","idempotencyKey","metadata","createdAt","updatedAt"]},"Response___object_a52725840a60":{"type":"object","properties":{"error":{"enum":["invalid_idempotency_key","invalid_amount","self_gift_not_allowed"]}},"additionalProperties":true,"required":["error"]},"Response___object_08760dd239e8":{"type":"object","properties":{"error":{"type":"string"},"missing":{"type":"number"},"balance":{"type":"number"},"wallets":{"$ref":"#/components/schemas/Response_WalletBalances_481030fdedb3"}},"additionalProperties":true,"required":["error","missing","balance","wallets"]},"Response___object_c50635d9488d":{"type":"object","properties":{"error":{"type":"string","const":"gifting_disabled"}},"additionalProperties":true,"required":["error"]},"Response___object_4aec2fe76408":{"type":"object","properties":{"error":{"type":"string","const":"recipient_not_found"}},"additionalProperties":true,"required":["error"]},"Response___object_e513748c1ac9":{"type":"object","properties":{"error":{"enum":["daily_cap_reached","monthly_cap_reached"]},"cap":{"type":"number"},"used":{"type":"number"},"remaining":{"type":"number"}},"additionalProperties":true,"required":["error","cap","used","remaining"]},"Response___object_bb90ac82096f":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"additionalProperties":true,"required":["success","message"]},"Response___object_fba00e2ace7a":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_e5041a35b02d":{"type":"object","properties":{"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_cdde4286652f"}},"pricing":{"$ref":"#/components/schemas/Response___object_a3fd2ec79c42"}},"additionalProperties":true,"required":["entitlements","pricing"]},"Response___object_cdde4286652f":{"type":"object","properties":{"key":{"enum":["premium_article_card","advanced_indicators","premium_subscription"]},"scope":{"type":"string"},"expiresAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["key","scope","expiresAt","createdAt"]},"Response___object_a3fd2ec79c42":{"type":"object","properties":{"premiumArticleUnlock":{"type":"number","const":15},"advancedIndicatorsDayPass":{"type":"number","const":30},"extendedBacktestRun":{"type":"number","const":80}},"additionalProperties":true,"required":["premiumArticleUnlock","advancedIndicatorsDayPass","extendedBacktestRun"]},"Response___object_3ce9928e63e7":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_34dbce894f7a":{"type":"object","properties":{"status":{"type":"string"},"entitlement":{"$ref":"#/components/schemas/Response___object_cdde4286652f"},"pricing":{"$ref":"#/components/schemas/Response___object_22f55b609124"}},"additionalProperties":true,"required":["status","entitlement","pricing"]},"Response___object_22f55b609124":{"type":"object","properties":{"advancedIndicatorsDayPass":{"type":"number","const":30}},"additionalProperties":true,"required":["advancedIndicatorsDayPass"]},"Response___object_9d86fbd5ea32":{"type":"object","properties":{"status":{"type":"string"},"entitlement":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___object_cdde4286652f"}]},"balance":{"type":"number"},"wallets":{"$ref":"#/components/schemas/Response_WalletBalances_481030fdedb3"},"pricing":{"$ref":"#/components/schemas/Response___object_22f55b609124"}},"additionalProperties":true,"required":["status","entitlement","balance","wallets","pricing"]},"Response___object_2e113e0c94b7":{"type":"object","properties":{"error":{"type":"string"},"missing":{"type":"number"},"balance":{"type":"number"},"unlockCost":{"type":"number","const":30}},"additionalProperties":true,"required":["error","missing","balance","unlockCost"]},"Response_ExperimentDraftList_0cd3ae4629c7":{"type":"object","properties":{"drafts":{"type":"array","items":{"$ref":"#/components/schemas/Response_ExperimentDraftSummary_37d4f5aac4e5"}}},"additionalProperties":true,"required":["drafts"]},"Response_ExperimentDraftSummary_37d4f5aac4e5":{"type":"object","properties":{"draftId":{"type":"string"},"strategyId":{"type":"string"},"name":{"type":"string"},"revision":{"type":"number"},"mode":{"enum":["python","guided"]},"setupStep":{"enum":[0,1,3,2]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["draftId","strategyId","name","revision","mode","setupStep","createdAt","updatedAt"]},"Response___object_4a78183f284f":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_042c6821bf9f":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"requestId":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_d0097efc069e":{"type":"object","properties":{"validation":{"$ref":"#/components/schemas/Response___type_562374215a63"},"requestId":{"type":"string"},"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___type_562374215a63":{"type":"object","properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true,"required":["field","reason"]},"Input_OptimisationCreateRequest_e76df567da71":{"type":"object","properties":{"compute":{"$ref":"#/components/schemas/Input_ExperimentComputeBudget_3c8a35e60dbb"},"experimentName":{"type":"string"},"candidateSourceRunId":{"type":"string"},"candidateTitle":{"type":"string"},"experimentKey":{"type":"string","const":"tp_sl_two_stage"},"templateKey":{"type":"string","const":"tp_sl_two_stage_nsga2_v1"},"cluster":{"type":"string","const":"dev"},"parameters":{"$ref":"#/components/schemas/Input_TpSlTwoStageParameters_54ae630cd507"},"executionPlan":{"$ref":"#/components/schemas/Input_TpSlExecutionPlan_40e23743a052"},"seedConfig":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_OptimisationSeedConfig_475f565b3f38"}]},"clientLaunch":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_OptimisationClientLaunchContext_fcbd0c3e76de"}]}},"additionalProperties":false,"required":["experimentKey","templateKey","cluster","parameters","executionPlan"]},"Input_ExperimentComputeBudget_3c8a35e60dbb":{"type":"object","properties":{"tier":{"enum":["included","accelerated"]},"vcpus":{"type":"number"},"memoryGiB":{"type":"number"},"maxHours":{"type":"number"},"maxTwigs":{"type":"number"}},"additionalProperties":false,"required":["tier","vcpus","memoryGiB","maxHours","maxTwigs"]},"Input_TpSlTwoStageParameters_54ae630cd507":{"type":"object","properties":{"dataProvider":{"type":"string","const":"alpaca"},"publishBenchmarkSymbol":{"type":"string","const":"SPY"},"objectivePreset":{"enum":["balanced","return_focus","risk_focus"]},"workerCount":{"type":"number"},"startDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"endDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"equitiesOnly":{"type":"boolean"},"excludeEtfs":{"type":"boolean"},"excludeIndiaEtfs":{"type":"boolean"},"stageATrials":{"type":"number"},"stageA2Mode":{"enum":["disabled","auto"]},"stageA2Trials":{"type":"number"},"stageAToA2Threshold":{"type":"number"},"stageA2HorizonBars":{"type":"number"},"stageA2LabelMinUpPct":{"type":"number"},"stageA2PredictorFeaturesCsv":{"type":"string"},"stageBTrials":{"type":"number"},"stageBExecutionTimeframe":{"enum":["1d","4h","1h"]},"stageBMaxHoldingBars":{"type":"number"},"lookbackYears":{"type":"number"},"trainMonths":{"type":"number"},"valMonths":{"type":"number"},"stepMonths":{"type":"number"},"purgeDays":{"type":"number"},"holdoutMonths":{"type":"number"},"holdoutStartDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"horizonBars":{"type":"number"},"labelMinUpPct":{"type":"number"},"stageAFeatureTimeframe":{"type":"string","const":"1d"},"predictorFeaturesCsv":{"type":"string"},"stageADecisionThreshold":{"type":"number"},"entryFilters":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_EntryFilters_246108e49094"}]},"stageALearningRateMin":{"type":"number"},"stageALearningRateMax":{"type":"number"},"stageAL2Min":{"type":"number"},"stageAL2Max":{"type":"number"},"stageAEpochsMin":{"type":"number"},"stageAEpochsMax":{"type":"number"},"stageAPosWeightMin":{"type":"number"},"stageAPosWeightMax":{"type":"number"},"tpMin":{"type":"number"},"tpMax":{"type":"number"},"slMin":{"type":"number"},"slMax":{"type":"number"},"reserveCashPctMin":{"type":"number"},"reserveCashPctMax":{"type":"number"},"optimizeProbThreshold":{"type":"boolean"},"probThresholdMin":{"type":"number"},"probThresholdMax":{"type":"number"},"executionMode":{"enum":["notional","capital"]},"executionBrokerId":{"type":"string"},"leverageMode":{"enum":["cash","reg_t"]},"requestedLeverage":{"enum":[1,2]},"marginInterestAnnualRatePct":{"anyOf":[{"type":"null"},{"type":"number"}]},"marginInterestDayCountBasis":{"anyOf":[{"type":"null"},{"type":"number"}]},"marginInterestRateSource":{"anyOf":[{"type":"null"},{"type":"string"}]},"marginInterestBenchmarkId":{"anyOf":[{"type":"null"},{"type":"string"}]},"marginInterestBenchmarkRatePct":{"anyOf":[{"type":"null"},{"type":"number"}]},"marginInterestBenchmarkRateSeries":{"anyOf":[{"type":"null"},{"type":"array","items":{"$ref":"#/components/schemas/Input___type_3990cece584e"}}]},"marginInterestSpreadPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"initialMarginRequirementPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"maintenanceMarginRequirementPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"marketFeeProfile":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_Record_eb4f4687892c"}]},"initialCapital":{"type":"number"},"riskPerTradePct":{"type":"number"},"maxPositionPctEquity":{"type":"number"},"maxGrossExposurePctEquity":{"type":"number"},"allowFractionalShares":{"type":"boolean"},"maxTradesPerDay":{"anyOf":[{"type":"null"},{"type":"number"}]},"commissionBps":{"type":"number"},"slippageBps":{"type":"number"},"halfSpreadBps":{"type":"number"},"borrowBpsPerBar":{"type":"number"},"minTrades":{"type":"number"},"maxDrawdown":{"type":"number"},"drawdownGateMetric":{"enum":["max_drawdown_p75","max_drawdown_stitched"]},"maxSymbolConcentration":{"type":"number"},"minRiskAdjusted":{"type":"number"},"maxTurnover":{"anyOf":[{"type":"null"},{"type":"number"}]},"maxCvar95":{"anyOf":[{"type":"null"},{"type":"number"}]},"lambdaReturn":{"type":"number"},"lambdaStability":{"type":"number"},"lambdaTail":{"type":"number"},"lambdaDrawdown":{"type":"number"},"lambdaConcentration":{"type":"number"},"lambdaTurnover":{"type":"number"},"negativeRiskAdjustedPenalty":{"type":"number"},"saveValidationTrades":{"type":"boolean"},"stageASeedBase":{"type":"number"},"stageBSeedBase":{"type":"number"}},"additionalProperties":false,"required":["dataProvider","publishBenchmarkSymbol","objectivePreset","workerCount","startDate","endDate","equitiesOnly","excludeEtfs","excludeIndiaEtfs","stageATrials","stageA2Mode","stageA2Trials","stageAToA2Threshold","stageA2HorizonBars","stageA2LabelMinUpPct","stageA2PredictorFeaturesCsv","stageBTrials","stageBExecutionTimeframe","stageBMaxHoldingBars","lookbackYears","trainMonths","valMonths","stepMonths","purgeDays","holdoutMonths","horizonBars","labelMinUpPct","stageAFeatureTimeframe","predictorFeaturesCsv","stageADecisionThreshold","stageALearningRateMin","stageALearningRateMax","stageAL2Min","stageAL2Max","stageAEpochsMin","stageAEpochsMax","stageAPosWeightMin","stageAPosWeightMax","tpMin","tpMax","slMin","slMax","reserveCashPctMin","reserveCashPctMax","optimizeProbThreshold","probThresholdMin","probThresholdMax","executionMode","executionBrokerId","leverageMode","requestedLeverage","marginInterestAnnualRatePct","marginInterestDayCountBasis","marginInterestRateSource","marginInterestBenchmarkId","marginInterestBenchmarkRatePct","marginInterestBenchmarkRateSeries","marginInterestSpreadPct","initialMarginRequirementPct","maintenanceMarginRequirementPct","marketFeeProfile","initialCapital","riskPerTradePct","maxPositionPctEquity","maxGrossExposurePctEquity","allowFractionalShares","maxTradesPerDay","commissionBps","slippageBps","halfSpreadBps","borrowBpsPerBar","minTrades","maxDrawdown","drawdownGateMetric","maxSymbolConcentration","minRiskAdjusted","maxTurnover","maxCvar95","lambdaReturn","lambdaStability","lambdaTail","lambdaDrawdown","lambdaConcentration","lambdaTurnover","negativeRiskAdjustedPenalty","saveValidationTrades","stageASeedBase","stageBSeedBase"]},"Input_EntryFilters_246108e49094":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"bar":{"type":"string","const":"1d"},"condition":{"anyOf":[{"$ref":"#/components/schemas/Input_RulePredicate_2b59e6f8a0c5"},{"$ref":"#/components/schemas/Input___type_4f173a53efd3"}]}},"additionalProperties":false,"required":["schema_version","bar","condition"]},"Input_RulePredicate_2b59e6f8a0c5":{"type":"object","properties":{"op":{"enum":["cross_above","cross_below","gt","gte","lt","lte"]},"left":{"anyOf":[{"type":"number"},{"$ref":"#/components/schemas/Input___type_a1bbc473f431"},{"$ref":"#/components/schemas/Input___type_d35f936601b6"},{"$ref":"#/components/schemas/Input___type_d999765bbf57"}]},"right":{"anyOf":[{"type":"number"},{"$ref":"#/components/schemas/Input___type_a1bbc473f431"},{"$ref":"#/components/schemas/Input___type_d35f936601b6"},{"$ref":"#/components/schemas/Input___type_d999765bbf57"}]}},"additionalProperties":false,"required":["op","left","right"]},"Input___type_a1bbc473f431":{"type":"object","properties":{"field":{"enum":["close","volume"]}},"additionalProperties":false,"required":["field"]},"Input___type_d35f936601b6":{"type":"object","properties":{"indicator":{"enum":["sma","ema","rsi","atr"]},"period":{"type":"number"}},"additionalProperties":false,"required":["indicator","period"]},"Input___type_d999765bbf57":{"type":"object","properties":{"indicator":{"type":"string","const":"macd"},"fast":{"type":"number"},"slow":{"type":"number"},"signal":{"type":"number"},"component":{"enum":["line","signal","histogram"]}},"additionalProperties":false,"required":["indicator","fast","slow","signal","component"]},"Input___type_4f173a53efd3":{"type":"object","properties":{"op":{"enum":["and","or"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/Input_RulePredicate_2b59e6f8a0c5"}}},"additionalProperties":false,"required":["op","conditions"]},"Input___type_3990cece584e":{"type":"object","properties":{"date":{"type":"string"},"rate_pct":{"type":"number"}},"additionalProperties":false,"required":["date","rate_pct"]},"Input_Record_eb4f4687892c":{"type":"object","properties":{},"additionalProperties":{"description":"JSON value whose shape is determined by the resource or provider."}},"Input_TpSlExecutionPlan_40e23743a052":{"type":"object","properties":{"mode":{"enum":["stage_a_only","stage_b_only","stage_a_to_b"]},"stageASourceRunId":{"anyOf":[{"type":"null"},{"type":"string"}]},"stageAStudyName":{"anyOf":[{"type":"null"},{"type":"string"}]},"stageAComponent":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input___type_fe83b119c533"},{"$ref":"#/components/schemas/Input___type_e287f9f8afbf"}]},"stageBComponent":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input___type_fe83b119c533"},{"$ref":"#/components/schemas/Input___type_e287f9f8afbf"}]},"canvas":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_TpSlPipelineCanvasSnapshot_9aaeed75f28d"}]},"stageAUniverseSource":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_TpSlStageABaseUniverseSource_7fdd77ca89f8"},{"$ref":"#/components/schemas/Input_TpSlStageAPlatformNicheUniverseSource_31ded7bfecca"},{"$ref":"#/components/schemas/Input_TpSlStageATickerPoolUniverseSource_d13dfeeb0e16"}]},"stageADataSelectors":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_TpSlStageADataSelectors_4a65756b3909"}]}},"additionalProperties":false,"required":["mode","stageASourceRunId","canvas"]},"Input___type_fe83b119c533":{"type":"object","properties":{"sourceKind":{"type":"string","const":"weavers_preset"},"componentType":{"enum":["stage_a","stage_b"]},"componentKey":{"type":"string"}},"additionalProperties":false,"required":["sourceKind","componentType","componentKey"]},"Input___type_e287f9f8afbf":{"type":"object","properties":{"sourceKind":{"type":"string","const":"notebook_component"},"componentType":{"enum":["stage_a","stage_b"]},"componentKey":{"type":"string"}},"additionalProperties":false,"required":["sourceKind","componentType","componentKey"]},"Input_TpSlPipelineCanvasSnapshot_9aaeed75f28d":{"type":"object","properties":{"version":{"type":"number","const":1},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/Input_TpSlPipelineNode_86df4aae24ef"}},"edges":{"type":"array","items":{"$ref":"#/components/schemas/Input_TpSlPipelineEdge_cd057d514b7f"}}},"additionalProperties":false,"required":["version","nodes","edges"]},"Input_TpSlPipelineNode_86df4aae24ef":{"type":"object","properties":{"id":{"type":"string"},"kind":{"enum":["stage_a_trainer","stage_b_entry_gate","stage_b_feasibility_gate","stage_b_optimizer"]},"x":{"type":"number"},"y":{"type":"number"}},"additionalProperties":false,"required":["id","kind","x","y"]},"Input_TpSlPipelineEdge_cd057d514b7f":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string"},"target":{"type":"string"}},"additionalProperties":false,"required":["id","source","target"]},"Input_TpSlStageABaseUniverseSource_7fdd77ca89f8":{"type":"object","properties":{"type":{"type":"string","const":"base"}},"additionalProperties":false,"required":["type"]},"Input_TpSlStageAPlatformNicheUniverseSource_31ded7bfecca":{"type":"object","properties":{"type":{"type":"string","const":"platform_niche"},"nicheId":{"type":"number"},"nicheKey":{"type":"string"}},"additionalProperties":false,"required":["type","nicheId","nicheKey"]},"Input_TpSlStageATickerPoolUniverseSource_d13dfeeb0e16":{"type":"object","properties":{"type":{"type":"string","const":"ticker_pool"},"symbols":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["type","symbols"]},"Input_TpSlStageADataSelectors_4a65756b3909":{"type":"object","properties":{"matchMode":{"enum":["all","any"]},"selectors":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/Input_TpSlStageAChannelDataSelector_1ab3bea7813c"},{"$ref":"#/components/schemas/Input_TpSlStageARegimeDataSelector_c0a7c2feda8b"}]}}},"additionalProperties":false,"required":["matchMode","selectors"]},"Input_TpSlStageAChannelDataSelector_1ab3bea7813c":{"type":"object","properties":{"type":{"type":"string","const":"channel"},"timeframe":{"enum":["1d","4h","1h"]},"windowDays":{"type":"number"},"directions":{"type":"array","items":{"enum":["ascending","descending"]}},"requireValid":{"type":"boolean"},"algoVersion":{"type":"string"},"characteristics":{"$ref":"#/components/schemas/Input_TpSlStageAChannelCharacteristics_a83e37dc1605"},"missingDataPolicy":{"type":"string","const":"skip_and_log"}},"additionalProperties":false,"required":["type","timeframe","windowDays","directions","requireValid","missingDataPolicy"]},"Input_TpSlStageAChannelCharacteristics_a83e37dc1605":{"type":"object","properties":{"states":{"type":"array","items":{"enum":["new","continuing"]}},"minR2":{"type":"number"},"maxR2":{"type":"number"},"minBandPosition":{"type":"number"},"maxBandPosition":{"type":"number"},"minBandWidthRatio":{"type":"number"},"maxBandWidthRatio":{"type":"number"},"minNormalizedSlope":{"type":"number"},"maxNormalizedSlope":{"type":"number"},"minConsecutiveRuns":{"type":"number"},"maxConsecutiveRuns":{"type":"number"}},"additionalProperties":false},"Input_TpSlStageARegimeDataSelector_c0a7c2feda8b":{"type":"object","properties":{"type":{"type":"string","const":"regime"},"source":{"type":"string","const":"snapshot"},"regime":{"enum":["bull","bear","stable"]},"minConfidence":{"type":"number"},"missingDataPolicy":{"type":"string","const":"skip_and_log"}},"additionalProperties":false,"required":["type","source","regime","minConfidence","missingDataPolicy"]},"Input_OptimisationSeedConfig_475f565b3f38":{"type":"object","properties":{"sourceStrategyId":{"type":"string"},"sourceStrategyRegistryId":{"type":"number"},"sourceArtifactId":{"type":"number"},"sourceRunId":{"anyOf":[{"type":"null"},{"type":"string"}]},"stageAConfig":{"$ref":"#/components/schemas/Input_Record_eb4f4687892c"},"finalExecutionConfig":{"$ref":"#/components/schemas/Input_Record_eb4f4687892c"}},"additionalProperties":false,"required":["sourceStrategyId","sourceStrategyRegistryId","sourceArtifactId","sourceRunId","stageAConfig","finalExecutionConfig"]},"Input_OptimisationClientLaunchContext_fcbd0c3e76de":{"type":"object","properties":{"validationRevisionId":{"type":"string"},"eurekaStrategyWorkspaceId":{"type":"string"},"researchQuestion":{"type":"string"},"submittedAt":{"type":"string"},"timezone":{"anyOf":[{"type":"null"},{"type":"string"}]},"localTimestamp":{"type":"string"},"notebookStrategyRun":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input___type_deb9761c258f"}]}},"additionalProperties":false,"required":["submittedAt","timezone","localTimestamp"]},"Input___type_deb9761c258f":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.notebook.strategy_run.v1"},"notebookKey":{"type":"string"},"notebookSavedAt":{"type":"string"},"selectedCells":{"type":"array","items":{"$ref":"#/components/schemas/Input___type_07958bec597a"}}},"additionalProperties":false,"required":["schema","notebookKey","notebookSavedAt","selectedCells"]},"Input___type_07958bec597a":{"type":"object","properties":{"cellId":{"type":"string"},"sourceSha256":{"type":"string"},"sourceBytes":{"type":"number"},"sourceUpdatedAt":{"type":"string"}},"additionalProperties":false,"required":["cellId","sourceSha256","sourceBytes","sourceUpdatedAt"]},"Input_PythonExperimentDraftConfiguration_d43ed0db7a94":{"type":"object","properties":{"mode":{"type":"string","const":"python"},"contractVersion":{"type":"string","const":"weavers.python.candidate.v1"},"sourceRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"datasetVersionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"parameterSchema":{"type":"array","items":{"$ref":"#/components/schemas/Input_PythonParameterDefinition_cd29c60fa090"}},"parameters":{"$ref":"#/components/schemas/Input_Record_7de6bf055f21"},"testSettings":{"$ref":"#/components/schemas/Input_PythonExperimentTestSettings_82df469bf43e"}},"additionalProperties":false,"required":["mode","contractVersion","sourceRevision","datasetVersionId","parameterSchema","parameters","testSettings"]},"Input_PythonParameterDefinition_cd29c60fa090":{"type":"object","properties":{"name":{"type":"string"},"type":{"enum":["string","number","boolean","integer"]},"default":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"minimum":{"type":"number"},"maximum":{"type":"number"},"options":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["name","type","default"]},"Input_Record_7de6bf055f21":{"type":"object","properties":{},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]}},"Input_PythonExperimentTestSettings_82df469bf43e":{"type":"object","properties":{"startDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"researchEndDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"holdoutStartDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"endDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"initialCapital":{"anyOf":[{"type":"null"},{"type":"number"}]},"commissionBps":{"anyOf":[{"type":"null"},{"type":"number"}]},"slippageBps":{"anyOf":[{"type":"null"},{"type":"number"}]},"policySizingSource":{"type":"string","const":"python"},"maxPositionPctEquity":{"anyOf":[{"type":"null"},{"type":"number"}]},"maxGrossExposurePctEquity":{"anyOf":[{"type":"null"},{"type":"number"}]},"benchmark":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":false,"required":["startDate","endDate","initialCapital","commissionBps","slippageBps","benchmark"]},"Response___object_547119974497":{"type":"object","properties":{"draft":{"anyOf":[{"$ref":"#/components/schemas/Response_Object_4647e50dcf9a"},{"$ref":"#/components/schemas/Response_Object_67c226a773e9"}]}},"additionalProperties":true,"required":["draft"]},"Response_Object_4647e50dcf9a":{"type":"object","properties":{"draftId":{"type":"string"},"strategyId":{"type":"string"},"name":{"type":"string"},"revision":{"type":"number"},"mode":{"type":"string","const":"guided"},"setupStep":{"enum":[0,1,3,2]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"configuration":{"$ref":"#/components/schemas/Response_OptimisationCreateRequest_255ca9d85ae4"},"researchQuestion":{"type":"string"}},"additionalProperties":true,"required":["draftId","strategyId","name","revision","mode","setupStep","createdAt","updatedAt","configuration","researchQuestion"]},"Response_OptimisationCreateRequest_255ca9d85ae4":{"type":"object","properties":{"compute":{"$ref":"#/components/schemas/Response_ExperimentComputeBudget_f0e4616676a6"},"experimentName":{"type":"string"},"candidateSourceRunId":{"type":"string"},"candidateTitle":{"type":"string"},"experimentKey":{"type":"string","const":"tp_sl_two_stage"},"templateKey":{"type":"string","const":"tp_sl_two_stage_nsga2_v1"},"cluster":{"type":"string","const":"dev"},"parameters":{"$ref":"#/components/schemas/Response_TpSlTwoStageParameters_d91c9179ffd6"},"executionPlan":{"$ref":"#/components/schemas/Response_TpSlExecutionPlan_802ac52f3b20"},"seedConfig":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationSeedConfig_7148c40b014b"}]},"clientLaunch":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationClientLaunchContext_95b0134680a7"}]}},"additionalProperties":true,"required":["experimentKey","templateKey","cluster","parameters","executionPlan"]},"Response_ExperimentComputeBudget_f0e4616676a6":{"type":"object","properties":{"tier":{"enum":["included","accelerated"]},"vcpus":{"type":"number"},"memoryGiB":{"type":"number"},"maxHours":{"type":"number"},"maxTwigs":{"type":"number"}},"additionalProperties":true,"required":["tier","vcpus","memoryGiB","maxHours","maxTwigs"]},"Response_TpSlTwoStageParameters_d91c9179ffd6":{"type":"object","properties":{"dataProvider":{"type":"string","const":"alpaca"},"publishBenchmarkSymbol":{"type":"string","const":"SPY"},"objectivePreset":{"enum":["balanced","return_focus","risk_focus"]},"workerCount":{"type":"number"},"startDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"endDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"equitiesOnly":{"type":"boolean"},"excludeEtfs":{"type":"boolean"},"excludeIndiaEtfs":{"type":"boolean"},"stageATrials":{"type":"number"},"stageA2Mode":{"enum":["disabled","auto"]},"stageA2Trials":{"type":"number"},"stageAToA2Threshold":{"type":"number"},"stageA2HorizonBars":{"type":"number"},"stageA2LabelMinUpPct":{"type":"number"},"stageA2PredictorFeaturesCsv":{"type":"string"},"stageBTrials":{"type":"number"},"stageBExecutionTimeframe":{"enum":["1d","4h","1h"]},"stageBMaxHoldingBars":{"type":"number"},"lookbackYears":{"type":"number"},"trainMonths":{"type":"number"},"valMonths":{"type":"number"},"stepMonths":{"type":"number"},"purgeDays":{"type":"number"},"holdoutMonths":{"type":"number"},"holdoutStartDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"horizonBars":{"type":"number"},"labelMinUpPct":{"type":"number"},"stageAFeatureTimeframe":{"type":"string","const":"1d"},"predictorFeaturesCsv":{"type":"string"},"stageADecisionThreshold":{"type":"number"},"entryFilters":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EntryFilters_fcba381cd3ad"}]},"stageALearningRateMin":{"type":"number"},"stageALearningRateMax":{"type":"number"},"stageAL2Min":{"type":"number"},"stageAL2Max":{"type":"number"},"stageAEpochsMin":{"type":"number"},"stageAEpochsMax":{"type":"number"},"stageAPosWeightMin":{"type":"number"},"stageAPosWeightMax":{"type":"number"},"tpMin":{"type":"number"},"tpMax":{"type":"number"},"slMin":{"type":"number"},"slMax":{"type":"number"},"reserveCashPctMin":{"type":"number"},"reserveCashPctMax":{"type":"number"},"optimizeProbThreshold":{"type":"boolean"},"probThresholdMin":{"type":"number"},"probThresholdMax":{"type":"number"},"executionMode":{"enum":["notional","capital"]},"executionBrokerId":{"type":"string"},"leverageMode":{"enum":["cash","reg_t"]},"requestedLeverage":{"enum":[1,2]},"marginInterestAnnualRatePct":{"anyOf":[{"type":"null"},{"type":"number"}]},"marginInterestDayCountBasis":{"anyOf":[{"type":"null"},{"type":"number"}]},"marginInterestRateSource":{"anyOf":[{"type":"null"},{"type":"string"}]},"marginInterestBenchmarkId":{"anyOf":[{"type":"null"},{"type":"string"}]},"marginInterestBenchmarkRatePct":{"anyOf":[{"type":"null"},{"type":"number"}]},"marginInterestBenchmarkRateSeries":{"anyOf":[{"type":"null"},{"type":"array","items":{"$ref":"#/components/schemas/Response___type_3e9e9a7e38d1"}}]},"marginInterestSpreadPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"initialMarginRequirementPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"maintenanceMarginRequirementPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"marketFeeProfile":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}]},"initialCapital":{"type":"number"},"riskPerTradePct":{"type":"number"},"maxPositionPctEquity":{"type":"number"},"maxGrossExposurePctEquity":{"type":"number"},"allowFractionalShares":{"type":"boolean"},"maxTradesPerDay":{"anyOf":[{"type":"null"},{"type":"number"}]},"commissionBps":{"type":"number"},"slippageBps":{"type":"number"},"halfSpreadBps":{"type":"number"},"borrowBpsPerBar":{"type":"number"},"minTrades":{"type":"number"},"maxDrawdown":{"type":"number"},"drawdownGateMetric":{"enum":["max_drawdown_p75","max_drawdown_stitched"]},"maxSymbolConcentration":{"type":"number"},"minRiskAdjusted":{"type":"number"},"maxTurnover":{"anyOf":[{"type":"null"},{"type":"number"}]},"maxCvar95":{"anyOf":[{"type":"null"},{"type":"number"}]},"lambdaReturn":{"type":"number"},"lambdaStability":{"type":"number"},"lambdaTail":{"type":"number"},"lambdaDrawdown":{"type":"number"},"lambdaConcentration":{"type":"number"},"lambdaTurnover":{"type":"number"},"negativeRiskAdjustedPenalty":{"type":"number"},"saveValidationTrades":{"type":"boolean"},"stageASeedBase":{"type":"number"},"stageBSeedBase":{"type":"number"}},"additionalProperties":true,"required":["dataProvider","publishBenchmarkSymbol","objectivePreset","workerCount","startDate","endDate","equitiesOnly","excludeEtfs","excludeIndiaEtfs","stageATrials","stageA2Mode","stageA2Trials","stageAToA2Threshold","stageA2HorizonBars","stageA2LabelMinUpPct","stageA2PredictorFeaturesCsv","stageBTrials","stageBExecutionTimeframe","stageBMaxHoldingBars","lookbackYears","trainMonths","valMonths","stepMonths","purgeDays","holdoutMonths","horizonBars","labelMinUpPct","stageAFeatureTimeframe","predictorFeaturesCsv","stageADecisionThreshold","stageALearningRateMin","stageALearningRateMax","stageAL2Min","stageAL2Max","stageAEpochsMin","stageAEpochsMax","stageAPosWeightMin","stageAPosWeightMax","tpMin","tpMax","slMin","slMax","reserveCashPctMin","reserveCashPctMax","optimizeProbThreshold","probThresholdMin","probThresholdMax","executionMode","executionBrokerId","leverageMode","requestedLeverage","marginInterestAnnualRatePct","marginInterestDayCountBasis","marginInterestRateSource","marginInterestBenchmarkId","marginInterestBenchmarkRatePct","marginInterestBenchmarkRateSeries","marginInterestSpreadPct","initialMarginRequirementPct","maintenanceMarginRequirementPct","marketFeeProfile","initialCapital","riskPerTradePct","maxPositionPctEquity","maxGrossExposurePctEquity","allowFractionalShares","maxTradesPerDay","commissionBps","slippageBps","halfSpreadBps","borrowBpsPerBar","minTrades","maxDrawdown","drawdownGateMetric","maxSymbolConcentration","minRiskAdjusted","maxTurnover","maxCvar95","lambdaReturn","lambdaStability","lambdaTail","lambdaDrawdown","lambdaConcentration","lambdaTurnover","negativeRiskAdjustedPenalty","saveValidationTrades","stageASeedBase","stageBSeedBase"]},"Response_EntryFilters_fcba381cd3ad":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"bar":{"type":"string","const":"1d"},"condition":{"anyOf":[{"$ref":"#/components/schemas/Response_RulePredicate_48640801771e"},{"$ref":"#/components/schemas/Response___type_2f35d26ea94b"}]}},"additionalProperties":true,"required":["schema_version","bar","condition"]},"Response_RulePredicate_48640801771e":{"type":"object","properties":{"op":{"enum":["cross_above","cross_below","gt","gte","lt","lte"]},"left":{"anyOf":[{"type":"number"},{"$ref":"#/components/schemas/Response___type_d8720c152ed7"},{"$ref":"#/components/schemas/Response___type_63a1501a04d1"},{"$ref":"#/components/schemas/Response___type_77d6e54dc35c"}]},"right":{"anyOf":[{"type":"number"},{"$ref":"#/components/schemas/Response___type_d8720c152ed7"},{"$ref":"#/components/schemas/Response___type_63a1501a04d1"},{"$ref":"#/components/schemas/Response___type_77d6e54dc35c"}]}},"additionalProperties":true,"required":["op","left","right"]},"Response___type_d8720c152ed7":{"type":"object","properties":{"field":{"enum":["close","volume"]}},"additionalProperties":true,"required":["field"]},"Response___type_63a1501a04d1":{"type":"object","properties":{"indicator":{"enum":["sma","ema","rsi","atr"]},"period":{"type":"number"}},"additionalProperties":true,"required":["indicator","period"]},"Response___type_77d6e54dc35c":{"type":"object","properties":{"indicator":{"type":"string","const":"macd"},"fast":{"type":"number"},"slow":{"type":"number"},"signal":{"type":"number"},"component":{"enum":["line","signal","histogram"]}},"additionalProperties":true,"required":["indicator","fast","slow","signal","component"]},"Response___type_2f35d26ea94b":{"type":"object","properties":{"op":{"enum":["and","or"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/Response_RulePredicate_48640801771e"}}},"additionalProperties":true,"required":["op","conditions"]},"Response___type_3e9e9a7e38d1":{"type":"object","properties":{"date":{"type":"string"},"rate_pct":{"type":"number"}},"additionalProperties":true,"required":["date","rate_pct"]},"Response_TpSlExecutionPlan_802ac52f3b20":{"type":"object","properties":{"mode":{"enum":["stage_a_only","stage_b_only","stage_a_to_b"]},"stageASourceRunId":{"anyOf":[{"type":"null"},{"type":"string"}]},"stageAStudyName":{"anyOf":[{"type":"null"},{"type":"string"}]},"stageAComponent":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_420e7a90b545"},{"$ref":"#/components/schemas/Response___type_5e2b7ecf6427"}]},"stageBComponent":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_420e7a90b545"},{"$ref":"#/components/schemas/Response___type_5e2b7ecf6427"}]},"canvas":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_TpSlPipelineCanvasSnapshot_c110918d955a"}]},"stageAUniverseSource":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_TpSlStageABaseUniverseSource_3ccf3f9f27ea"},{"$ref":"#/components/schemas/Response_TpSlStageAPlatformNicheUniverseSource_35df28327d52"},{"$ref":"#/components/schemas/Response_TpSlStageATickerPoolUniverseSource_8e6b34366824"}]},"stageADataSelectors":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_TpSlStageADataSelectors_fd2d26290d41"}]}},"additionalProperties":true,"required":["mode","stageASourceRunId","canvas"]},"Response___type_420e7a90b545":{"type":"object","properties":{"sourceKind":{"type":"string","const":"weavers_preset"},"componentType":{"enum":["stage_a","stage_b"]},"componentKey":{"type":"string"}},"additionalProperties":true,"required":["sourceKind","componentType","componentKey"]},"Response___type_5e2b7ecf6427":{"type":"object","properties":{"sourceKind":{"type":"string","const":"notebook_component"},"componentType":{"enum":["stage_a","stage_b"]},"componentKey":{"type":"string"}},"additionalProperties":true,"required":["sourceKind","componentType","componentKey"]},"Response_TpSlPipelineCanvasSnapshot_c110918d955a":{"type":"object","properties":{"version":{"type":"number","const":1},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/Response_TpSlPipelineNode_6d73738c3146"}},"edges":{"type":"array","items":{"$ref":"#/components/schemas/Response_TpSlPipelineEdge_aa6633c7c21e"}}},"additionalProperties":true,"required":["version","nodes","edges"]},"Response_TpSlPipelineNode_6d73738c3146":{"type":"object","properties":{"id":{"type":"string"},"kind":{"enum":["stage_a_trainer","stage_b_entry_gate","stage_b_feasibility_gate","stage_b_optimizer"]},"x":{"type":"number"},"y":{"type":"number"}},"additionalProperties":true,"required":["id","kind","x","y"]},"Response_TpSlPipelineEdge_aa6633c7c21e":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string"},"target":{"type":"string"}},"additionalProperties":true,"required":["id","source","target"]},"Response_TpSlStageABaseUniverseSource_3ccf3f9f27ea":{"type":"object","properties":{"type":{"type":"string","const":"base"}},"additionalProperties":true,"required":["type"]},"Response_TpSlStageAPlatformNicheUniverseSource_35df28327d52":{"type":"object","properties":{"type":{"type":"string","const":"platform_niche"},"nicheId":{"type":"number"},"nicheKey":{"type":"string"}},"additionalProperties":true,"required":["type","nicheId","nicheKey"]},"Response_TpSlStageATickerPoolUniverseSource_8e6b34366824":{"type":"object","properties":{"type":{"type":"string","const":"ticker_pool"},"symbols":{"type":"array","items":{"type":"string"}}},"additionalProperties":true,"required":["type","symbols"]},"Response_TpSlStageADataSelectors_fd2d26290d41":{"type":"object","properties":{"matchMode":{"enum":["all","any"]},"selectors":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/Response_TpSlStageAChannelDataSelector_9cb806534367"},{"$ref":"#/components/schemas/Response_TpSlStageARegimeDataSelector_25f2a99f2d99"}]}}},"additionalProperties":true,"required":["matchMode","selectors"]},"Response_TpSlStageAChannelDataSelector_9cb806534367":{"type":"object","properties":{"type":{"type":"string","const":"channel"},"timeframe":{"enum":["1d","4h","1h"]},"windowDays":{"type":"number"},"directions":{"type":"array","items":{"enum":["ascending","descending"]}},"requireValid":{"type":"boolean"},"algoVersion":{"type":"string"},"characteristics":{"$ref":"#/components/schemas/Response_TpSlStageAChannelCharacteristics_9f3d44398e0f"},"missingDataPolicy":{"type":"string","const":"skip_and_log"}},"additionalProperties":true,"required":["type","timeframe","windowDays","directions","requireValid","missingDataPolicy"]},"Response_TpSlStageAChannelCharacteristics_9f3d44398e0f":{"type":"object","properties":{"states":{"type":"array","items":{"enum":["new","continuing"]}},"minR2":{"type":"number"},"maxR2":{"type":"number"},"minBandPosition":{"type":"number"},"maxBandPosition":{"type":"number"},"minBandWidthRatio":{"type":"number"},"maxBandWidthRatio":{"type":"number"},"minNormalizedSlope":{"type":"number"},"maxNormalizedSlope":{"type":"number"},"minConsecutiveRuns":{"type":"number"},"maxConsecutiveRuns":{"type":"number"}},"additionalProperties":true},"Response_TpSlStageARegimeDataSelector_25f2a99f2d99":{"type":"object","properties":{"type":{"type":"string","const":"regime"},"source":{"type":"string","const":"snapshot"},"regime":{"enum":["bull","bear","stable"]},"minConfidence":{"type":"number"},"missingDataPolicy":{"type":"string","const":"skip_and_log"}},"additionalProperties":true,"required":["type","source","regime","minConfidence","missingDataPolicy"]},"Response_OptimisationSeedConfig_7148c40b014b":{"type":"object","properties":{"sourceStrategyId":{"type":"string"},"sourceStrategyRegistryId":{"type":"number"},"sourceArtifactId":{"type":"number"},"sourceRunId":{"anyOf":[{"type":"null"},{"type":"string"}]},"stageAConfig":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"finalExecutionConfig":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["sourceStrategyId","sourceStrategyRegistryId","sourceArtifactId","sourceRunId","stageAConfig","finalExecutionConfig"]},"Response_OptimisationClientLaunchContext_95b0134680a7":{"type":"object","properties":{"validationRevisionId":{"type":"string"},"eurekaStrategyWorkspaceId":{"type":"string"},"researchQuestion":{"type":"string"},"submittedAt":{"type":"string"},"timezone":{"anyOf":[{"type":"null"},{"type":"string"}]},"localTimestamp":{"type":"string"},"notebookStrategyRun":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_ffcea292fb17"}]}},"additionalProperties":true,"required":["submittedAt","timezone","localTimestamp"]},"Response___type_ffcea292fb17":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.notebook.strategy_run.v1"},"notebookKey":{"type":"string"},"notebookSavedAt":{"type":"string"},"selectedCells":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_df9b93b0e012"}}},"additionalProperties":true,"required":["schema","notebookKey","notebookSavedAt","selectedCells"]},"Response___type_df9b93b0e012":{"type":"object","properties":{"cellId":{"type":"string"},"sourceSha256":{"type":"string"},"sourceBytes":{"type":"number"},"sourceUpdatedAt":{"type":"string"}},"additionalProperties":true,"required":["cellId","sourceSha256","sourceBytes","sourceUpdatedAt"]},"Response_Object_67c226a773e9":{"type":"object","properties":{"draftId":{"type":"string"},"strategyId":{"type":"string"},"name":{"type":"string"},"revision":{"type":"number"},"mode":{"type":"string","const":"python"},"setupStep":{"enum":[0,1,3,2]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"configuration":{"$ref":"#/components/schemas/Response_PythonExperimentDraftConfiguration_ca4c9e0e2182"},"researchQuestion":{"type":"string"}},"additionalProperties":true,"required":["draftId","strategyId","name","revision","mode","setupStep","createdAt","updatedAt","configuration","researchQuestion"]},"Response_PythonExperimentDraftConfiguration_ca4c9e0e2182":{"type":"object","properties":{"mode":{"type":"string","const":"python"},"contractVersion":{"type":"string","const":"weavers.python.candidate.v1"},"sourceRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"datasetVersionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"parameterSchema":{"type":"array","items":{"$ref":"#/components/schemas/Response_PythonParameterDefinition_2df343714ec7"}},"parameters":{"$ref":"#/components/schemas/Response_Record_c01a1d512e8b"},"testSettings":{"$ref":"#/components/schemas/Response_PythonExperimentTestSettings_10c489851dcf"}},"additionalProperties":true,"required":["mode","contractVersion","sourceRevision","datasetVersionId","parameterSchema","parameters","testSettings"]},"Response_PythonParameterDefinition_2df343714ec7":{"type":"object","properties":{"name":{"type":"string"},"type":{"enum":["string","number","boolean","integer"]},"default":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"minimum":{"type":"number"},"maximum":{"type":"number"},"options":{"type":"array","items":{"type":"string"}}},"additionalProperties":true,"required":["name","type","default"]},"Response_Record_c01a1d512e8b":{"type":"object","properties":{},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]}},"Response_PythonExperimentTestSettings_10c489851dcf":{"type":"object","properties":{"startDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"researchEndDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"holdoutStartDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"endDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"initialCapital":{"anyOf":[{"type":"null"},{"type":"number"}]},"commissionBps":{"anyOf":[{"type":"null"},{"type":"number"}]},"slippageBps":{"anyOf":[{"type":"null"},{"type":"number"}]},"policySizingSource":{"type":"string","const":"python"},"maxPositionPctEquity":{"anyOf":[{"type":"null"},{"type":"number"}]},"maxGrossExposurePctEquity":{"anyOf":[{"type":"null"},{"type":"number"}]},"benchmark":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["startDate","endDate","initialCapital","commissionBps","slippageBps","benchmark"]},"Response_EurekaLoomyConversationListResponse_ae7cfb17d100":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaLoomyConversation_7d2ed6249299"}}},"additionalProperties":true,"required":["items"]},"Response_EurekaLoomyConversation_7d2ed6249299":{"type":"object","properties":{"conversationId":{"type":"string"},"title":{"type":"string"},"preview":{"anyOf":[{"type":"null"},{"type":"string"}]},"lastMessageAt":{"type":"string"},"messageCount":{"type":"number"}},"additionalProperties":true,"required":["conversationId","title","preview","lastMessageAt","messageCount"]},"Response___object_9a4c32e62583":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"requestId":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_752b486b60a3":{"type":"object","properties":{"requestId":{"type":"string"},"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_411e5eb60a0e":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response_EurekaLoomyThreadResponse_fe898b9f18a8":{"type":"object","properties":{"conversation":{"$ref":"#/components/schemas/Response_EurekaLoomyConversation_7d2ed6249299"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaLoomyMessage_8996d05cdf2e"}}},"additionalProperties":true,"required":["conversation","messages"]},"Response_EurekaLoomyMessage_8996d05cdf2e":{"type":"object","properties":{"id":{"type":"string"},"requestKey":{"type":"string"},"role":{"enum":["user","assistant"]},"content":{"type":"string"},"createdAt":{"type":"string"},"proposal":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EurekaLoomyTickerPoolProposal_85036fe9c28c"},{"$ref":"#/components/schemas/Response_EurekaLoomyStrategyNameProposal_b49cb2d2eb1b"},{"$ref":"#/components/schemas/Response_EurekaLoomyBuilderProposal_44712fc10f60"},{"$ref":"#/components/schemas/Response_EurekaLoomyDataWindowProposal_1d9d20e9cc42"},{"$ref":"#/components/schemas/Response_EurekaLoomyNavigationProposal_85531856bbe8"},{"$ref":"#/components/schemas/Response_EurekaLoomyNotebookProposal_3baf3b059dce"},{"$ref":"#/components/schemas/Response_EurekaLoomyPythonSourceProposal_b4b176aa1a52"},{"$ref":"#/components/schemas/Response_EurekaLoomyCanvasBlockProposal_f0a9f58f931c"},{"$ref":"#/components/schemas/Response_EurekaLoomyCanvasPlanProposal_f84250a0201f"},{"$ref":"#/components/schemas/Response_EurekaLoomyCanvasEvidenceProposal_55367ff8af0c"}]},"pythonContext":{"$ref":"#/components/schemas/Response___type_df186eab6429"}},"additionalProperties":true,"required":["id","role","content","createdAt","proposal"]},"Response_EurekaLoomyTickerPoolProposal_85036fe9c28c":{"type":"object","properties":{"kind":{"type":"string","const":"ticker_pool"},"reviewRequired":{"enum":[false,true]},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"before":{"type":"array","items":{"type":"string"}},"after":{"type":"array","items":{"type":"string"}},"reason":{"type":"string"}},"additionalProperties":true,"required":["kind","strategyId","strategyRevision","before","after","reason"]},"Response_EurekaLoomyStrategyNameProposal_b49cb2d2eb1b":{"type":"object","properties":{"kind":{"type":"string","const":"strategy_name"},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"before":{"type":"string"},"after":{"type":"string"}},"additionalProperties":true,"required":["kind","strategyId","strategyRevision","before","after"]},"Response_EurekaLoomyBuilderProposal_44712fc10f60":{"type":"object","properties":{"kind":{"type":"string","const":"builder"},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"stage":{"enum":["signal-predictor","execution-policy"]},"changes":{"type":"array","items":{"$ref":"#/components/schemas/Response_Object_68d9d72d5a7e"}},"review":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/Response___type_0f5b8c3ce56a"},{"$ref":"#/components/schemas/Response___type_18d3ecb08b4c"}]}}},"additionalProperties":true,"required":["kind","strategyId","strategyRevision","stage","changes","review"]},"Response_Object_68d9d72d5a7e":{"type":"object","properties":{"controlId":{"type":"string"},"value":{"anyOf":[{"type":"null"},{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"reason":{"type":"string"}},"additionalProperties":true,"required":["controlId","value","reason"]},"Response___type_0f5b8c3ce56a":{"type":"object","properties":{"controlId":{"type":"string"},"ok":{"type":"boolean","const":true},"label":{"type":"string"},"before":{"anyOf":[{"type":"null"},{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"after":{"anyOf":[{"type":"null"},{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]}},"additionalProperties":true,"required":["controlId","ok","label","before","after"]},"Response___type_18d3ecb08b4c":{"type":"object","properties":{"controlId":{"type":"string"},"ok":{"type":"boolean","const":false},"label":{"anyOf":[{"type":"null"},{"type":"string"}]},"error":{"type":"string"}},"additionalProperties":true,"required":["controlId","ok","label","error"]},"Response_EurekaLoomyDataWindowProposal_1d9d20e9cc42":{"type":"object","properties":{"kind":{"type":"string","const":"data_window"},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"before":{"$ref":"#/components/schemas/Response___type_d2e4380aa7c4"},"after":{"$ref":"#/components/schemas/Response___type_d2e4380aa7c4"},"reason":{"type":"string"}},"additionalProperties":true,"required":["kind","strategyId","strategyRevision","before","after","reason"]},"Response___type_d2e4380aa7c4":{"type":"object","properties":{"startDate":{"type":"string"},"endDate":{"type":"string"},"holdoutDays":{"anyOf":[{"type":"null"},{"type":"number"}]},"holdoutStartDate":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["startDate","endDate"]},"Response_EurekaLoomyNavigationProposal_85531856bbe8":{"type":"object","properties":{"kind":{"type":"string","const":"navigation"},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"view":{"enum":["python","tickers","notebook","canvas","builder","preflight"]},"symbols":{"type":"array","items":{"type":"string"}}},"additionalProperties":true,"required":["kind","strategyId","strategyRevision","view","symbols"]},"Response_EurekaLoomyNotebookProposal_3baf3b059dce":{"type":"object","properties":{"kind":{"type":"string","const":"notebook"},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"notebookKey":{"type":"string"},"response":{"$ref":"#/components/schemas/Response_NotebookCodexAssistantResponse_79d23134036c"}},"additionalProperties":true,"required":["kind","strategyId","strategyRevision","notebookKey","response"]},"Response_NotebookCodexAssistantResponse_79d23134036c":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.notebook.codex_assistant.v1"},"version":{"type":"number","const":1},"message":{"type":"string"},"edits":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/Response_NotebookCodexAssistantReplaceCellSourceEdit_783384a9b35d"},{"$ref":"#/components/schemas/Response_NotebookCodexAssistantCreateCellEdit_03676f742a79"},{"$ref":"#/components/schemas/Response_NotebookCodexAssistantDeleteCellEdit_3d647de60cdd"},{"$ref":"#/components/schemas/Response_NotebookCodexAssistantMoveCellEdit_a88823f5c130"}]}},"warnings":{"type":"array","items":{"type":"string"}}},"additionalProperties":true,"required":["schema","version","message","edits","warnings"]},"Response_NotebookCodexAssistantReplaceCellSourceEdit_783384a9b35d":{"type":"object","properties":{"operation":{"type":"string","const":"replace_cell_source"},"cellId":{"type":"string"},"source":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true,"required":["operation","cellId","source"]},"Response_NotebookCodexAssistantCreateCellEdit_03676f742a79":{"type":"object","properties":{"operation":{"type":"string","const":"create_cell"},"cellId":{"type":"string"},"afterCellId":{"anyOf":[{"type":"null"},{"type":"string"}]},"source":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true,"required":["operation","source"]},"Response_NotebookCodexAssistantDeleteCellEdit_3d647de60cdd":{"type":"object","properties":{"operation":{"type":"string","const":"delete_cell"},"cellId":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true,"required":["operation","cellId"]},"Response_NotebookCodexAssistantMoveCellEdit_a88823f5c130":{"type":"object","properties":{"operation":{"type":"string","const":"move_cell"},"cellId":{"type":"string"},"afterCellId":{"anyOf":[{"type":"null"},{"type":"string"}]},"reason":{"type":"string"}},"additionalProperties":true,"required":["operation","cellId"]},"Response_EurekaLoomyPythonSourceProposal_b4b176aa1a52":{"type":"object","properties":{"kind":{"type":"string","const":"python_source"},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"beforeSourceRevision":{"type":"number"},"beforeSourceSha256":{"anyOf":[{"type":"null"},{"type":"string"}]},"beforeSource":{"anyOf":[{"type":"null"},{"type":"string"}]},"datasetVersionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"datasetSha256":{"anyOf":[{"type":"null"},{"type":"string"}]},"experimentDraftId":{"anyOf":[{"type":"null"},{"type":"string"}]},"experimentDraftRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"source":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true,"required":["kind","strategyId","strategyRevision","beforeSourceRevision","beforeSourceSha256","beforeSource","datasetVersionId","datasetSha256","experimentDraftId","experimentDraftRevision","source","reason"]},"Response_EurekaLoomyCanvasBlockProposal_f0a9f58f931c":{"type":"object","properties":{"kind":{"type":"string","const":"canvas_block"},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"blockKind":{"enum":["channel","ohlc","coverage","behaviour"]},"symbols":{"type":"array","items":{"type":"string"}},"timeframe":{"enum":["1D","1H"]},"startDate":{"type":"string"},"endDate":{"type":"string"}},"additionalProperties":true,"required":["kind","strategyId","strategyRevision","blockKind","symbols","timeframe","startDate","endDate"]},"Response_EurekaLoomyCanvasPlanProposal_f84250a0201f":{"type":"object","properties":{"kind":{"type":"string","const":"canvas_plan"},"reviewRequired":{"enum":[false,true]},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"tickerPool":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_a53a0b2b8fc5"}]},"chartSymbols":{"type":"array","items":{"type":"string"}},"blocks":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_bccae3614c22"}}},"additionalProperties":true,"required":["kind","strategyId","strategyRevision","tickerPool","chartSymbols","blocks"]},"Response___type_a53a0b2b8fc5":{"type":"object","properties":{"before":{"type":"array","items":{"type":"string"}},"after":{"type":"array","items":{"type":"string"}},"reason":{"type":"string"}},"additionalProperties":true,"required":["before","after","reason"]},"Response___type_bccae3614c22":{"type":"object","properties":{"blockKind":{"enum":["channel","ohlc","coverage","behaviour"]},"symbols":{"type":"array","items":{"type":"string"}},"timeframe":{"enum":["1D","1H"]},"startDate":{"type":"string"},"endDate":{"type":"string"}},"additionalProperties":true,"required":["blockKind","symbols","timeframe","startDate","endDate"]},"Response_EurekaLoomyCanvasEvidenceProposal_55367ff8af0c":{"type":"object","properties":{"kind":{"type":"string","const":"canvas_evidence"},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"runId":{"anyOf":[{"type":"null"},{"type":"string"}]},"evidenceKinds":{"type":"array","items":{"enum":["folds","run_summary","trajectories","pareto","calibration","equity","validation_overlay","holdout_replay","certification"]}}},"additionalProperties":true,"required":["kind","strategyId","strategyRevision","runId","evidenceKinds"]},"Response___type_df186eab6429":{"type":"object","properties":{"sourceRevision":{"type":"number"},"sourceSha256":{"anyOf":[{"type":"null"},{"type":"string"}]},"datasetVersionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"datasetSha256":{"anyOf":[{"type":"null"},{"type":"string"}]},"experimentDraftId":{"anyOf":[{"type":"null"},{"type":"string"}]},"experimentDraftRevision":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["sourceRevision","sourceSha256","datasetVersionId","datasetSha256","experimentDraftId","experimentDraftRevision"]},"Input_EurekaLoomyPreflightSnapshot_116ac5793e45":{"type":"object","properties":{"status":{"enum":["blocked","ready","degraded"]},"label":{"enum":["Ready","Degraded","Blocked"]},"fieldsComplete":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["status","label","fieldsComplete","reasons"]},"Response_EurekaLoomySendResponse_f073f5de001a":{"type":"object","properties":{"conversation":{"$ref":"#/components/schemas/Response_EurekaLoomyConversation_7d2ed6249299"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaLoomyMessage_8996d05cdf2e"}},"assistant":{"$ref":"#/components/schemas/Response_EurekaLoomyMessage_8996d05cdf2e"}},"additionalProperties":true,"required":["conversation","messages","assistant"]},"Response___object_0eee26c35bac":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantCredentialStatusItem_6890d2d60b22"}},"runtime":{"$ref":"#/components/schemas/Response___object_60bcad79fe8e"}},"additionalProperties":true,"required":["items","runtime"]},"Response_EurekaNotebookAssistantCredentialStatusItem_6890d2d60b22":{"type":"object","properties":{"provider":{"type":"string","const":"codex"},"authType":{"enum":["oauth","codex_access_token"]},"configured":{"type":"boolean"},"status":{"enum":["missing","active","revoked","invalid"]},"label":{"anyOf":[{"type":"null"},{"type":"string"}]},"fingerprint":{"anyOf":[{"type":"null"},{"type":"string"}]},"lastVerifiedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["provider","authType","configured","status","label","fingerprint","lastVerifiedAt","updatedAt"]},"Response___object_60bcad79fe8e":{"type":"object","properties":{"modelId":{"type":"string"},"mcp":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___object_52faacd89516"}]}},"additionalProperties":true,"required":["modelId","mcp"]},"Response___object_52faacd89516":{"type":"object","properties":{"label":{"type":"string"},"toolCount":{"type":"number"}},"additionalProperties":true,"required":["label","toolCount"]},"Response___type_3b5aa3bf4011":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response_EurekaNotebookAssistantCodexLoginStartResponse_a30b776c02fe":{"type":"object","properties":{"loginId":{"type":"string"},"status":{"enum":["failed","completed","pending","expired"]},"verificationUrl":{"type":"string"},"userCode":{"type":"string"},"expiresAt":{"type":"string"}},"additionalProperties":true,"required":["loginId","status","verificationUrl","userCode","expiresAt"]},"Response_EurekaNotebookAssistantCodexLoginPollResponse_9a42e82f5b02":{"type":"object","properties":{"loginId":{"type":"string"},"status":{"enum":["failed","completed","pending","expired"]},"item":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantCredentialStatusItem_6890d2d60b22"}]},"error":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["loginId","status","item","error"]},"Response___object_f55eb4c78803":{"type":"object","properties":{"item":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantCredentialStatusItem_6890d2d60b22"}},"additionalProperties":true,"required":["item"]},"Response_EurekaNotebookAssistantThreadListResponse_c421eddb99d2":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantThreadSummary_afca6b232f3b"}},"nextCursor":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_ce7d8c9f5bbd"}]}},"additionalProperties":true,"required":["items","nextCursor"]},"Response_EurekaNotebookAssistantThreadSummary_afca6b232f3b":{"type":"object","properties":{"conversationId":{"type":"string"},"threadId":{"anyOf":[{"type":"null"},{"type":"string"}]},"notebookKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"runId":{"anyOf":[{"type":"null"},{"type":"string"}]},"title":{"type":"string"},"preview":{"anyOf":[{"type":"null"},{"type":"string"}]},"lastMessageAt":{"type":"string"}},"additionalProperties":true,"required":["conversationId","threadId","notebookKey","runId","title","preview","lastMessageAt"]},"Response___type_ce7d8c9f5bbd":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true,"required":["id"]},"Response_EurekaNotebookAssistantThreadCreateResponse_205a340d16b0":{"type":"object","properties":{"conversationId":{"type":"string"},"scopeKey":{"type":"string"},"threadId":{"type":"string"}},"additionalProperties":true,"required":["conversationId","scopeKey","threadId"]},"Response_EurekaNotebookAssistantThreadResponse_15345e7c2bf3":{"type":"object","properties":{"conversationId":{"anyOf":[{"type":"null"},{"type":"string"}]},"scopeKey":{"type":"string"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantMessageRecord_f2feaf688a60"}}},"additionalProperties":true,"required":["conversationId","scopeKey","messages"]},"Response_EurekaNotebookAssistantMessageRecord_f2feaf688a60":{"type":"object","properties":{"id":{"type":"string"},"role":{"enum":["user","assistant"]},"content":{"type":"string"},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["id","role","content","createdAt"]},"Response_EurekaNotebookAssistantThreadMutationResponse_a88f4ec52a77":{"type":"object","properties":{"conversationId":{"anyOf":[{"type":"null"},{"type":"string"}]},"scopeKey":{"type":"string"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantMessageRecord_f2feaf688a60"}},"appended":{"type":"number"},"skipped":{"type":"number"}},"additionalProperties":true,"required":["conversationId","scopeKey","messages","appended","skipped"]},"Response___object_3b5aa3bf4011":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response_EurekaNotebookAssistantMessageRequestResponse_408f3df6e445":{"type":"object","properties":{"conversationId":{"type":"string"},"scopeKey":{"type":"string"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantMessageRecord_f2feaf688a60"}},"request":{"$ref":"#/components/schemas/Response_EurekaNotebookAssistantRequestRecord_d99772677004"},"assistant":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_NotebookCodexAssistantResponse_79d23134036c"}]},"provider":{"anyOf":[{"type":"null"},{"type":"string","const":"codex"}]},"authType":{"anyOf":[{"type":"null"},{"type":"string","const":"oauth"},{"type":"string","const":"codex_access_token"}]},"modelId":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["conversationId","scopeKey","messages","request","assistant","provider","authType","modelId"]},"Response_EurekaNotebookAssistantRequestRecord_d99772677004":{"type":"object","properties":{"requestId":{"type":"string"},"status":{"enum":["running","accepted","succeeded","failed","queued"]},"errorCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"errorMessage":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"finishedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["requestId","status","errorCode","errorMessage","createdAt","startedAt","finishedAt","updatedAt"]},"Input_WeaversNotebookExecutionCell_025e77e2048f":{"type":"object","properties":{"cellId":{"type":"string"},"source":{"type":"string"},"sourceSha256":{"type":"string"},"sourceBytes":{"type":"number"},"sourceUpdatedAt":{"type":"string"}},"additionalProperties":false,"required":["cellId","source","sourceSha256","sourceBytes","sourceUpdatedAt"]},"Input_WeaversNotebookExecutionDataReference_2db31879a4bd":{"type":"object","properties":{"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"symbols":{"type":"array","items":{"type":"string"}},"scope":{"enum":["full","sample"]},"provider":{"type":"string","const":"alpaca"},"startDate":{"type":"string"},"endDate":{"type":"string"},"timeframe":{"enum":["1D","1H","4H"]}},"additionalProperties":false,"required":["strategyId","strategyRevision","symbols","provider","startDate","endDate","timeframe"]},"Input_Partial_917e944ec9c5":{"type":"object","properties":{"timeoutSeconds":{"type":"number"},"outputMaxBytes":{"type":"number"}},"additionalProperties":false},"Response_WeaversNotebookExecutionSubmitResponse_2c9e3ab7ec88":{"type":"object","properties":{"execution":{"$ref":"#/components/schemas/Response_WeaversNotebookExecutionJob_52a3e34ca279"},"idempotentReplay":{"type":"boolean"},"localWorkerCallback":{"$ref":"#/components/schemas/Response_WeaversNotebookLocalWorkerCallback_24a2988780d6"},"localWorkerInput":{"$ref":"#/components/schemas/Response_WeaversNotebookWorkerInput_bab5e19c41e0"}},"additionalProperties":true,"required":["execution","idempotentReplay"]},"Response_WeaversNotebookExecutionJob_52a3e34ca279":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.notebook.execution.v2"},"version":{"type":"number","const":2},"jobId":{"type":"string"},"notebookKey":{"type":"string"},"notebookRevision":{"type":"string"},"cellId":{"type":"string"},"cellIds":{"type":"array","items":{"type":"string"}},"mode":{"enum":["all","through_cell"]},"strategyRevision":{"type":"number"},"dataContextSha256":{"type":"string"},"resourceLimits":{"$ref":"#/components/schemas/Response_WeaversNotebookExecutionResourceLimits_84dbcaf8830f"},"backend":{"enum":["local","local_docker","local_gpu","remote_kubernetes"]},"status":{"enum":["running","blocked","accepted","submitted","succeeded","failed","cancelled"]},"sourceSha256":{"type":"string"},"sourceBytes":{"type":"number"},"backendJobId":{"anyOf":[{"type":"null"},{"type":"string"}]},"message":{"type":"string"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/Response_WeaversNotebookOutput_95d5dfdf8453"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"completedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["schema","version","jobId","notebookKey","notebookRevision","cellId","cellIds","mode","strategyRevision","dataContextSha256","resourceLimits","backend","status","sourceSha256","sourceBytes","backendJobId","message","outputs","createdAt","updatedAt","completedAt"]},"Response_WeaversNotebookExecutionResourceLimits_84dbcaf8830f":{"type":"object","properties":{"timeoutSeconds":{"type":"number"},"outputMaxBytes":{"type":"number"}},"additionalProperties":true,"required":["timeoutSeconds","outputMaxBytes"]},"Response_WeaversNotebookOutput_95d5dfdf8453":{"type":"object","properties":{"id":{"type":"string"},"kind":{"enum":["error","text","json","table","chart"]},"text":{"type":"string"},"createdAt":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["id","kind","text","createdAt"]},"Response_WeaversNotebookLocalWorkerCallback_24a2988780d6":{"type":"object","properties":{"endpointPath":{"type":"string"},"headerName":{"type":"string","const":"x-weavers-notebook-worker-token"},"proof":{"type":"string"}},"additionalProperties":true,"required":["endpointPath","headerName","proof"]},"Response_WeaversNotebookWorkerInput_bab5e19c41e0":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.notebook.execution.v2"},"version":{"type":"number","const":2},"notebookKey":{"type":"string"},"notebookRevision":{"type":"string"},"targetCellId":{"type":"string"},"mode":{"enum":["all","through_cell"]},"cells":{"type":"array","items":{"$ref":"#/components/schemas/Response_WeaversNotebookExecutionCell_58e6643065e8"}},"dataContext":{"$ref":"#/components/schemas/Response_WeaversNotebookExecutionDataContext_afe3ff0b6f78"},"dataContextSha256":{"type":"string"},"resourceLimits":{"$ref":"#/components/schemas/Response_WeaversNotebookExecutionResourceLimits_84dbcaf8830f"}},"additionalProperties":true,"required":["schema","version","notebookKey","notebookRevision","targetCellId","mode","cells","dataContext","dataContextSha256","resourceLimits"]},"Response_WeaversNotebookExecutionCell_58e6643065e8":{"type":"object","properties":{"cellId":{"type":"string"},"source":{"type":"string"},"sourceSha256":{"type":"string"},"sourceBytes":{"type":"number"},"sourceUpdatedAt":{"type":"string"}},"additionalProperties":true,"required":["cellId","source","sourceSha256","sourceBytes","sourceUpdatedAt"]},"Response_WeaversNotebookExecutionDataContext_afe3ff0b6f78":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.notebook.data_context.v1"},"strategyId":{"type":"string"},"strategyRevision":{"type":"number"},"symbols":{"type":"array","items":{"type":"string"}},"scope":{"enum":["full","sample"]},"strategyPoolSize":{"type":"number"},"provider":{"type":"string","const":"alpaca"},"startDate":{"type":"string"},"endDate":{"type":"string"},"timeframe":{"enum":["1D","1H","4H"]},"series":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_e6b4cf93a184"}},"missingSymbols":{"type":"array","items":{"type":"string"}},"totalBars":{"type":"number"},"maxBars":{"type":"number"},"truncated":{"type":"boolean"},"preparedAt":{"type":"string"}},"additionalProperties":true,"required":["schema","strategyId","strategyRevision","symbols","provider","startDate","endDate","timeframe","series","missingSymbols","totalBars","maxBars","truncated","preparedAt"]},"Response___type_e6b4cf93a184":{"type":"object","properties":{"symbol":{"type":"string"},"source":{"anyOf":[{"type":"null"},{"type":"string"}]},"candles":{"type":"array","items":{"$ref":"#/components/schemas/Response_WeaversNotebookExecutionCandle_df3ca13e0947"}},"rejectedRows":{"type":"number"},"truncated":{"type":"boolean"}},"additionalProperties":true,"required":["symbol","source","candles","rejectedRows","truncated"]},"Response_WeaversNotebookExecutionCandle_df3ca13e0947":{"type":"object","properties":{"timestamp":{"type":"string"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"},"volume":{"type":"number"}},"additionalProperties":true,"required":["timestamp","open","high","low","close"]},"Response___type_807228d51274":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___type_d4fa0297ae27":{"type":"object","properties":{"execution":{"$ref":"#/components/schemas/Response_WeaversNotebookExecutionJob_52a3e34ca279"}},"additionalProperties":true,"required":["execution"]},"Input_WeaversNotebookOutput_07494e2532db":{"type":"object","properties":{"id":{"type":"string"},"kind":{"enum":["error","text","json","table","chart"]},"text":{"type":"string"},"createdAt":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Input_Record_eb4f4687892c"}},"additionalProperties":false,"required":["id","kind","text","createdAt"]},"Response_WeaversNotebookStrategyApplyResponse_de5fb166adb7":{"type":"object","properties":{"strategy":{"$ref":"#/components/schemas/Response_EurekaStrategyWorkspace_0675ae7b81f1"},"executionJobId":{"type":"string"},"outputId":{"type":"string"},"results":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/Response___type_0f5b8c3ce56a"},{"$ref":"#/components/schemas/Response___type_18d3ecb08b4c"}]}}},"additionalProperties":true,"required":["strategy","executionJobId","outputId","results"]},"Response_EurekaStrategyWorkspace_0675ae7b81f1":{"type":"object","properties":{"strategyId":{"type":"string"},"name":{"type":"string"},"revision":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"tickerCount":{"type":"number"},"research":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EurekaStrategyResearch_ab1d53d90a33"}]},"draft":{"$ref":"#/components/schemas/Response_EurekaStrategyDraft_a1a61ea6be40"}},"additionalProperties":true,"required":["strategyId","name","revision","createdAt","updatedAt","draft"]},"Response_EurekaStrategyResearch_ab1d53d90a33":{"type":"object","properties":{"hypothesis":{"type":"string"},"source":{"$ref":"#/components/schemas/Response___type_7c9e353f578f"}},"additionalProperties":true,"required":["hypothesis"]},"Response___type_7c9e353f578f":{"type":"object","properties":{"kind":{"enum":["channel_observation","published_strategy"]},"id":{"type":"string"},"label":{"type":"string"},"observedAt":{"type":"string"}},"additionalProperties":true,"required":["kind","id","label","observedAt"]},"Response_EurekaStrategyDraft_a1a61ea6be40":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.strategy-draft.v1"},"tickerSymbols":{"type":"array","items":{"type":"string"}},"configuration":{"$ref":"#/components/schemas/Response_Omit_16d6c6f2e863"},"research":{"$ref":"#/components/schemas/Response_EurekaStrategyResearch_ab1d53d90a33"}},"additionalProperties":true,"required":["schema","tickerSymbols","configuration"]},"Response_Omit_16d6c6f2e863":{"type":"object","properties":{"compute":{"$ref":"#/components/schemas/Response_ExperimentComputeBudget_f0e4616676a6"},"experimentName":{"type":"string"},"experimentKey":{"type":"string","const":"tp_sl_two_stage"},"templateKey":{"type":"string","const":"tp_sl_two_stage_nsga2_v1"},"cluster":{"type":"string","const":"dev"},"parameters":{"$ref":"#/components/schemas/Response_TpSlTwoStageParameters_d91c9179ffd6"},"executionPlan":{"$ref":"#/components/schemas/Response_TpSlExecutionPlan_802ac52f3b20"},"seedConfig":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationSeedConfig_7148c40b014b"}]}},"additionalProperties":true,"required":["experimentKey","templateKey","cluster","parameters","executionPlan"]},"Input_WeaversNotebookStrategyRunSelectedCell_ab226514e4b1":{"type":"object","properties":{"cellId":{"type":"string"},"sourceSha256":{"type":"string"},"sourceBytes":{"type":"number"},"sourceUpdatedAt":{"type":"string"}},"additionalProperties":false,"required":["cellId","sourceSha256","sourceBytes","sourceUpdatedAt"]},"Input_WeaversNotebookDocument_ef3d312af85a":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.notebook.v1"},"version":{"type":"number","const":1},"notebookKey":{"type":"string"},"title":{"type":"string"},"cells":{"type":"array","items":{"$ref":"#/components/schemas/Input_WeaversNotebookCell_e988895d9b65"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"universeSource":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_TpSlStageABaseUniverseSource_7fdd77ca89f8"},{"$ref":"#/components/schemas/Input_TpSlStageAPlatformNicheUniverseSource_31ded7bfecca"},{"$ref":"#/components/schemas/Input_TpSlStageATickerPoolUniverseSource_d13dfeeb0e16"}]}},"additionalProperties":false,"required":["schema","version","notebookKey","title","cells","createdAt","updatedAt"]},"Input_WeaversNotebookCell_e988895d9b65":{"type":"object","properties":{"id":{"type":"string"},"kind":{"enum":["bootstrap","code"]},"language":{"enum":["python","weavers-bootstrap"]},"locked":{"type":"boolean"},"strategyRunEnabled":{"enum":[false,true]},"source":{"type":"string"},"status":{"enum":["idle","running","success","stale","error","blocked"]},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/Input_WeaversNotebookOutput_07494e2532db"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"additionalProperties":false,"required":["id","kind","language","locked","source","status","outputs","createdAt","updatedAt"]},"Response_WeaversNotebookStrategyRunResponse_ba2ac4e88b2e":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.notebook.strategy_run.v1"},"version":{"type":"number","const":1},"notebookKey":{"type":"string"},"notebookSavedAt":{"type":"string"},"engine":{"enum":["local","cloud"]},"selectedCellIds":{"type":"array","items":{"type":"string"}},"selectedCells":{"type":"array","items":{"$ref":"#/components/schemas/Response_WeaversNotebookStrategyRunSelectedCell_33659580b207"}},"runId":{"type":"string"},"status":{"type":"string"},"createdAt":{"type":"string"},"idempotentReplay":{"type":"boolean"},"message":{"type":"string"}},"additionalProperties":true,"required":["schema","version","notebookKey","notebookSavedAt","engine","selectedCellIds","selectedCells","runId","status","createdAt","idempotentReplay","message"]},"Response_WeaversNotebookStrategyRunSelectedCell_33659580b207":{"type":"object","properties":{"cellId":{"type":"string"},"sourceSha256":{"type":"string"},"sourceBytes":{"type":"number"},"sourceUpdatedAt":{"type":"string"}},"additionalProperties":true,"required":["cellId","sourceSha256","sourceBytes","sourceUpdatedAt"]},"Response___object_5bbb7679ba88":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___type_5bbb7679ba88":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___type_cdb025feb163":{"type":"object","properties":{"notebooks":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaNotebookListItem_effb7c906d7d"}}},"additionalProperties":true,"required":["notebooks"]},"Response_EurekaNotebookListItem_effb7c906d7d":{"type":"object","properties":{"notebookKey":{"type":"string"},"title":{"type":"string"},"savedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["notebookKey","title","savedAt","createdAt","updatedAt"]},"Response___type_962520d6af09":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response_EurekaNotebookReadResult_2e958776a3d5":{"type":"object","properties":{"notebook":{"$ref":"#/components/schemas/Response_WeaversNotebookDocument_e60d56add7bd"},"source":{"enum":["default","persisted"]},"savedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["notebook","source","savedAt"]},"Response_WeaversNotebookDocument_e60d56add7bd":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.notebook.v1"},"version":{"type":"number","const":1},"notebookKey":{"type":"string"},"title":{"type":"string"},"cells":{"type":"array","items":{"$ref":"#/components/schemas/Response_WeaversNotebookCell_9d80658a0bd1"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"universeSource":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_TpSlStageABaseUniverseSource_3ccf3f9f27ea"},{"$ref":"#/components/schemas/Response_TpSlStageAPlatformNicheUniverseSource_35df28327d52"},{"$ref":"#/components/schemas/Response_TpSlStageATickerPoolUniverseSource_8e6b34366824"}]}},"additionalProperties":true,"required":["schema","version","notebookKey","title","cells","createdAt","updatedAt"]},"Response_WeaversNotebookCell_9d80658a0bd1":{"type":"object","properties":{"id":{"type":"string"},"kind":{"enum":["bootstrap","code"]},"language":{"enum":["python","weavers-bootstrap"]},"locked":{"type":"boolean"},"strategyRunEnabled":{"enum":[false,true]},"source":{"type":"string"},"status":{"enum":["idle","running","success","stale","error","blocked"]},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/Response_WeaversNotebookOutput_95d5dfdf8453"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["id","kind","language","locked","source","status","outputs","createdAt","updatedAt"]},"Response_EurekaNotebookWriteResult_16a31cae3688":{"type":"object","properties":{"notebook":{"$ref":"#/components/schemas/Response_WeaversNotebookDocument_e60d56add7bd"},"savedAt":{"type":"string"}},"additionalProperties":true,"required":["notebook","savedAt"]},"Response_EurekaNotebookDeleteResult_9b7b38e3a0d0":{"type":"object","properties":{"notebookKey":{"type":"string"},"deletedAssistantThreads":{"type":"number"}},"additionalProperties":true,"required":["notebookKey","deletedAssistantThreads"]},"Response___object_11934b928df9":{"type":"object","properties":{"dataset":{"$ref":"#/components/schemas/Response___object_9e23f30d4f3f"},"preview":{"type":"array","items":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}}},"additionalProperties":true,"required":["dataset","preview"]},"Response___object_9e23f30d4f3f":{"type":"object","properties":{"datasetVersionId":{"type":"string"},"strategyId":{"type":"string"},"format":{"enum":["csv","parquet"]},"rawSha256":{"type":"string"},"sizeBytes":{"type":"number"},"metadata":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["datasetVersionId","strategyId","format","rawSha256","sizeBytes","metadata","createdAt"]},"Response___object_e57b01359395":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_fdb24e53b0e4":{"type":"object","properties":{"datasets":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_9e23f30d4f3f"}}},"additionalProperties":true,"required":["datasets"]},"Response___object_fda620c1a219":{"type":"object","properties":{"dataset":{"$ref":"#/components/schemas/Response___object_9e23f30d4f3f"}},"additionalProperties":true,"required":["dataset"]},"Response___object_5559faf070bc":{"type":"object","properties":{"draftId":{"type":"string"},"draftRevision":{"type":"number"},"sourceRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"datasetVersionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"preflight":{"$ref":"#/components/schemas/Response_PythonRunPreflight_f9640ebdd621"}},"additionalProperties":true,"required":["draftId","draftRevision","sourceRevision","datasetVersionId","preflight"]},"Response_PythonRunPreflight_f9640ebdd621":{"type":"object","properties":{"status":{"enum":["blocked","ready","degraded"]},"issues":{"type":"array","items":{"$ref":"#/components/schemas/Response_PythonRunPreflightIssue_0ef9f5e41b2d"}}},"additionalProperties":true,"required":["status","issues"]},"Response_PythonRunPreflightIssue_0ef9f5e41b2d":{"type":"object","properties":{"code":{"type":"string"},"severity":{"enum":["blocked","degraded"]},"message":{"type":"string"}},"additionalProperties":true,"required":["code","severity","message"]},"Response___object_9d4c9505b751":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"requestId":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_4c5a6725e78d":{"type":"object","properties":{"validation":{"$ref":"#/components/schemas/Response___type_4186a2569868"},"requestId":{"type":"string"},"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___type_4186a2569868":{"type":"object","properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true,"required":["field","reason"]},"Response___type_39333d278bcb":{"type":"object","properties":{"runId":{"type":"string"},"status":{"type":"string"},"created":{"type":"boolean"}},"additionalProperties":true,"required":["runId","status","created"]},"Response___object_e7434c56e187":{"type":"object","properties":{"runs":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_edb782d994cd"}}},"additionalProperties":true,"required":["runs"]},"Response___object_edb782d994cd":{"type":"object","properties":{"runId":{"type":"string"},"status":{"type":"string"},"createdAt":{"type":"string"},"draftId":{"type":"string"},"strategyId":{"type":"string"},"question":{"type":"string"},"eligibility":{"type":"string"},"summary":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["runId","status","createdAt","draftId","strategyId","question","eligibility","summary"]},"Response___object_f27d62cc88de":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_a9758f5ed1a7":{"type":"object","properties":{"runId":{"type":"string"},"status":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"errorCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"errorMessage":{"anyOf":[{"type":"null"},{"type":"string"}]},"summary":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"manifestSha256":{"type":"string"},"manifest":{"$ref":"#/components/schemas/Response___object_5707166be250"},"artifacts":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_65897ea26332"}},"events":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_0afb8c76be93"}}},"additionalProperties":true,"required":["runId","status","createdAt","updatedAt","errorCode","errorMessage","summary","manifestSha256","manifest","artifacts","events"]},"Response___object_5707166be250":{"type":"object","properties":{"research":{"description":"JSON value whose shape is determined by the resource or provider."},"source":{"description":"JSON value whose shape is determined by the resource or provider."},"data":{"description":"JSON value whose shape is determined by the resource or provider."},"evaluation":{"description":"JSON value whose shape is determined by the resource or provider."},"strategy":{"description":"JSON value whose shape is determined by the resource or provider."},"eligibility":{"description":"JSON value whose shape is determined by the resource or provider."},"runtime":{"description":"JSON value whose shape is determined by the resource or provider."}},"additionalProperties":true,"required":["research","source","data","evaluation","strategy","eligibility","runtime"]},"Response___object_65897ea26332":{"type":"object","properties":{"type":{"type":"string"},"path":{"type":"string"},"sizeBytes":{"type":"number"},"sha256":{"type":"string"}},"additionalProperties":true,"required":["type","path","sizeBytes","sha256"]},"Response___object_0afb8c76be93":{"type":"object","properties":{"type":{"type":"string"},"createdAt":{"type":"string"},"details":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["type","createdAt","details"]},"Response___object_508ca75715eb":{"type":"object","properties":{"runId":{"type":"string"},"status":{"type":"string"}},"additionalProperties":true,"required":["runId","status"]},"Response___type_bbf5ed3a919f":{"type":"object","properties":{"source":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EurekaPythonSourceRevision_37a55644226d"}]},"revision":{"type":"number"}},"additionalProperties":true,"required":["source","revision"]},"Response_EurekaPythonSourceRevision_37a55644226d":{"type":"object","properties":{"strategyId":{"type":"string"},"revision":{"type":"number"},"source":{"type":"string"},"sourceSha256":{"type":"string"},"provenance":{"enum":["assistant","editor","import","template","loomy","restore"]},"restoredFromRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["strategyId","revision","source","sourceSha256","provenance","restoredFromRevision","createdAt"]},"Response___object_5cd7defd72cb":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___type_1442faa272df":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/Response_EurekaPythonSourceRevision_37a55644226d"},"created":{"type":"boolean"}},"additionalProperties":true,"required":["source","created"]},"Response___type_20afa99ec7fb":{"type":"object","properties":{"proposals":{"type":"array","items":{"$ref":"#/components/schemas/Response_PythonAssistantProposalSummary_512ead52f982"}}},"additionalProperties":true,"required":["proposals"]},"Response_PythonAssistantProposalSummary_512ead52f982":{"type":"object","properties":{"proposalId":{"type":"string"},"strategyId":{"type":"string"},"clientId":{"type":"string"},"requestSha256":{"type":"string"},"strategyRevision":{"type":"number"},"baseSourceRevision":{"type":"number"},"baseSourceSha256":{"anyOf":[{"type":"null"},{"type":"string"}]},"datasetVersionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"datasetSha256":{"anyOf":[{"type":"null"},{"type":"string"}]},"experimentDraftId":{"anyOf":[{"type":"null"},{"type":"string"}]},"experimentDraftRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"sourceSha256":{"type":"string"},"reason":{"type":"string"},"status":{"enum":["pending","applied","rejected"]},"appliedSourceRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"createdAt":{"type":"string"},"decidedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["proposalId","strategyId","clientId","requestSha256","strategyRevision","baseSourceRevision","baseSourceSha256","datasetVersionId","datasetSha256","experimentDraftId","experimentDraftRevision","sourceSha256","reason","status","appliedSourceRevision","createdAt","decidedAt"]},"Response___object_97782db1de49":{"type":"object","properties":{"proposal":{"$ref":"#/components/schemas/Response_PythonAssistantProposal_1a037d9e7f67"}},"additionalProperties":true,"required":["proposal"]},"Response_PythonAssistantProposal_1a037d9e7f67":{"type":"object","properties":{"proposalId":{"type":"string"},"strategyId":{"type":"string"},"clientId":{"type":"string"},"requestSha256":{"type":"string"},"strategyRevision":{"type":"number"},"baseSourceRevision":{"type":"number"},"baseSourceSha256":{"anyOf":[{"type":"null"},{"type":"string"}]},"datasetVersionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"datasetSha256":{"anyOf":[{"type":"null"},{"type":"string"}]},"experimentDraftId":{"anyOf":[{"type":"null"},{"type":"string"}]},"experimentDraftRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"sourceSha256":{"type":"string"},"reason":{"type":"string"},"status":{"enum":["pending","applied","rejected"]},"appliedSourceRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"createdAt":{"type":"string"},"decidedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"source":{"type":"string"}},"additionalProperties":true,"required":["proposalId","strategyId","clientId","requestSha256","strategyRevision","baseSourceRevision","baseSourceSha256","datasetVersionId","datasetSha256","experimentDraftId","experimentDraftRevision","sourceSha256","reason","status","appliedSourceRevision","createdAt","decidedAt","source"]},"Response___object_3077269f3233":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/Response_EurekaPythonSourceRevision_37a55644226d"},"created":{"type":"boolean"},"alreadyApplied":{"type":"boolean"}},"additionalProperties":true,"required":["source","created","alreadyApplied"]},"Response___object_7e54d88e702e":{"type":"object","properties":{"status":{"type":"string","const":"rejected"}},"additionalProperties":true,"required":["status"]},"Response___type_7f09d39df699":{"type":"object","properties":{"revisions":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaPythonSourceSummary_4c519f7df0eb"}}},"additionalProperties":true,"required":["revisions"]},"Response_EurekaPythonSourceSummary_4c519f7df0eb":{"type":"object","properties":{"strategyId":{"type":"string"},"revision":{"type":"number"},"sourceSha256":{"type":"string"},"provenance":{"enum":["assistant","editor","import","template","loomy","restore"]},"restoredFromRevision":{"anyOf":[{"type":"null"},{"type":"number"}]},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["strategyId","revision","sourceSha256","provenance","restoredFromRevision","createdAt"]},"Response___object_5e5c2af0e980":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/Response_EurekaPythonSourceRevision_37a55644226d"}},"additionalProperties":true,"required":["source"]},"Response___object_4738cff02a50":{"type":"object","properties":{"logoDevPublishableKey":{"type":"string"},"markets":{"type":"array","items":{"$ref":"#/components/schemas/Response_ResearchDataMarket_35501c9afb68"}},"capturedAt":{"type":"string"}},"additionalProperties":true,"required":["markets","capturedAt"]},"Response_ResearchDataMarket_35501c9afb68":{"type":"object","properties":{"source":{"type":"string","const":"catalog"},"country":{"type":"string"},"geography":{"enum":["exposure","listing"]},"instrumentType":{"enum":["other","stock","etf"]},"theme":{"type":"string"},"assetCount":{"type":"number"},"examples":{"type":"array","items":{"type":"string"}},"exampleAssets":{"type":"array","items":{"$ref":"#/components/schemas/Response_InstrumentIdentity_50a0fdc930e6"}},"listingCountries":{"type":"array","items":{"type":"string"}},"currencies":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_e3f70bf87b4c"}},"id":{"type":"string"},"slices":{"type":"array","items":{"$ref":"#/components/schemas/Response_ResearchDataSlice_53964cf79ce3"}}},"additionalProperties":true,"required":["source","country","geography","instrumentType","assetCount","examples","listingCountries","currencies","sources","id"]},"Response_InstrumentIdentity_50a0fdc930e6":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"exchange":{"anyOf":[{"type":"null"},{"type":"string"}]},"listingCountry":{"anyOf":[{"type":"null"},{"type":"string"}]},"assetType":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["symbol"]},"Response___type_e3f70bf87b4c":{"type":"object","properties":{"provider":{"enum":["alpaca","marketstack"]},"timeframe":{"enum":["1D","1H"]},"first":{"type":"string"},"last":{"type":"string"}},"additionalProperties":true,"required":["provider","timeframe","first","last"]},"Response_ResearchDataSlice_53964cf79ce3":{"type":"object","properties":{"assetCount":{"type":"number"},"examples":{"type":"array","items":{"type":"string"}},"exampleAssets":{"type":"array","items":{"$ref":"#/components/schemas/Response_InstrumentIdentity_50a0fdc930e6"}},"listingCountries":{"type":"array","items":{"type":"string"}},"currencies":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_e3f70bf87b4c"}},"sector":{"type":"string"},"exchange":{"type":"string"},"themes":{"type":"array","items":{"type":"string"}}},"additionalProperties":true,"required":["assetCount","examples","listingCountries","currencies","sources","sector","exchange","themes"]},"Response___object_477c9dffed78":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response_ResearchInspection_752fc40a18af":{"type":"object","properties":{"previewAssetOffset":{"type":"number"},"previewWithData":{"type":"number"},"predictorSeries":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_f93b67fae595"}},"dataset":{"anyOf":[{"$ref":"#/components/schemas/Response_ResearchNicheDataset_959394501b76"},{"$ref":"#/components/schemas/Response_Object_3b8f41f69a7f"}]},"inspectedAt":{"type":"string"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/Response_ResearchAsset_f37d7b77468b"}},"assetCount":{"type":"number"},"assetsTruncated":{"type":"boolean"},"symbol":{"anyOf":[{"type":"null"},{"type":"string"}]},"candles":{"type":"array","items":{"$ref":"#/components/schemas/Response_ResearchCandle_00682ae3606a"}},"rejectedRows":{"type":"number"},"candlesTruncated":{"type":"boolean"},"overview":{"$ref":"#/components/schemas/Response_ResearchOverview_274521d4e9bd"},"selectedAsset":{"$ref":"#/components/schemas/Response_ResearchAsset_f37d7b77468b"},"benchmark":{"$ref":"#/components/schemas/Response___type_d24173d0d7d1"}},"additionalProperties":true,"required":["dataset","inspectedAt","assets","assetCount","assetsTruncated","symbol","candles","rejectedRows","candlesTruncated"]},"Response___type_f93b67fae595":{"type":"object","properties":{"timestamp":{"type":"string"},"value":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["timestamp","value"]},"Response_ResearchNicheDataset_959394501b76":{"type":"object","properties":{"provider":{"enum":["alpaca","marketstack"]},"startDate":{"type":"string"},"endDate":{"type":"string"},"timeframe":{"enum":["1D","1H"]},"nicheId":{"type":"number"},"nicheKey":{"type":"string"},"equitiesOnly":{"type":"boolean"},"excludeEtfs":{"type":"boolean"},"excludeIndiaEtfs":{"type":"boolean"}},"additionalProperties":true,"required":["provider","startDate","endDate","timeframe","nicheId","nicheKey","equitiesOnly","excludeEtfs","excludeIndiaEtfs"]},"Response_Object_3b8f41f69a7f":{"type":"object","properties":{"provider":{"enum":["alpaca","marketstack"]},"startDate":{"type":"string"},"endDate":{"type":"string"},"timeframe":{"enum":["1D","1H"]},"source":{"type":"string","const":"catalog"},"country":{"type":"string"},"geography":{"enum":["exposure","listing"]},"instrumentType":{"enum":["other","stock","etf"]},"theme":{"type":"string"}},"additionalProperties":true,"required":["provider","startDate","endDate","timeframe","source","country","geography","instrumentType"]},"Response_ResearchAsset_f37d7b77468b":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":"string"},"sector":{"anyOf":[{"type":"null"},{"type":"string"}]},"exchange":{"anyOf":[{"type":"null"},{"type":"string"}]},"currency":{"anyOf":[{"type":"null"},{"type":"string"}]},"country":{"anyOf":[{"type":"null"},{"type":"string"}]},"assetType":{"anyOf":[{"type":"null"},{"type":"string"}]},"listingCountry":{"anyOf":[{"type":"null"},{"type":"string"}]},"exposureCountry":{"anyOf":[{"type":"null"},{"type":"string"}]},"exposureBasis":{"anyOf":[{"type":"null"},{"type":"string"}]},"priceSummary":{"$ref":"#/components/schemas/Response___type_c6958241a866"},"priceHistory":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_878fdc979cdc"}},"coverage":{"$ref":"#/components/schemas/Response___type_3dde9d175e3a"}},"additionalProperties":true,"required":["symbol","name"]},"Response___type_c6958241a866":{"type":"object","properties":{"high":{"anyOf":[{"type":"null"},{"type":"number"}]},"low":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["high","low"]},"Response___type_878fdc979cdc":{"type":"object","properties":{"time":{"type":"string"},"close":{"type":"number"}},"additionalProperties":true,"required":["time","close"]},"Response___type_3dde9d175e3a":{"type":"object","properties":{"bars":{"type":"number"},"first":{"anyOf":[{"type":"null"},{"type":"string"}]},"last":{"anyOf":[{"type":"null"},{"type":"string"}]},"source":{"anyOf":[{"type":"null"},{"type":"string"}]},"referenceBars":{"type":"number"},"missingBars":{"type":"number"},"missingVolume":{"type":"number"},"invalidBars":{"type":"number"},"adjustedCloseBars":{"type":"number"},"status":{"enum":["matches_reference","partial","no_data","unknown_exchange"]}},"additionalProperties":true,"required":["bars","first","last","source","referenceBars","missingBars","missingVolume","invalidBars","adjustedCloseBars","status"]},"Response_ResearchCandle_00682ae3606a":{"type":"object","properties":{"timestamp":{"type":"string"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"},"volume":{"type":"number"}},"additionalProperties":true,"required":["timestamp","open","high","low","close"]},"Response_ResearchOverview_274521d4e9bd":{"type":"object","properties":{"marketCapAssets":{"type":"array","items":{"$ref":"#/components/schemas/Response_ResearchMarketCapAsset_cb491947e6b0"}},"filteredCount":{"type":"number"},"offset":{"type":"number"},"pageSize":{"type":"number"},"withData":{"type":"number"},"matchesReference":{"type":"number"},"sectors":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_60a458dcbc33"}},"exchanges":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_60a458dcbc33"}},"currencies":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_60a458dcbc33"}}},"additionalProperties":true,"required":["filteredCount","offset","pageSize","withData","matchesReference","sectors","exchanges","currencies"]},"Response_ResearchMarketCapAsset_cb491947e6b0":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":"string"},"coverage":{"$ref":"#/components/schemas/Response___type_3dde9d175e3a"},"sector":{"anyOf":[{"type":"null"},{"type":"string"}]},"assetType":{"anyOf":[{"type":"null"},{"type":"string"}]},"priceHistory":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_878fdc979cdc"}},"priceSummary":{"$ref":"#/components/schemas/Response___type_c6958241a866"},"currency":{"anyOf":[{"type":"null"},{"type":"string"}]},"exchange":{"anyOf":[{"type":"null"},{"type":"string"}]},"listingCountry":{"anyOf":[{"type":"null"},{"type":"string"}]},"marketCap":{"anyOf":[{"type":"null"},{"type":"number"}]},"marketCapCurrency":{"anyOf":[{"type":"null"},{"type":"string"}]},"marketCapAsOf":{"anyOf":[{"type":"null"},{"type":"string"}]},"marketCapEstimated":{"enum":[false,true]},"marketCapSharesOutstanding":{"anyOf":[{"type":"null"},{"type":"number"}]},"marketCapSharesAsOf":{"anyOf":[{"type":"null"},{"type":"string"}]},"marketCapSharesFiledAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"marketCapSharesAccession":{"anyOf":[{"type":"null"},{"type":"string"}]},"marketCapPriceSource":{"anyOf":[{"type":"null"},{"type":"string"}]},"marketCapValidUntil":{"anyOf":[{"type":"null"},{"type":"string"}]},"marketCapFetchedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"marketCapProvider":{"anyOf":[{"type":"null"},{"type":"string"}]},"marketCapValuationPrecision":{"anyOf":[{"type":"null"},{"type":"string","const":"date"},{"type":"string","const":"timestamp"}]},"marketCapStatus":{"enum":["stale","missing","fresh","undated"]}},"additionalProperties":true,"required":["symbol","name","marketCap","marketCapCurrency","marketCapAsOf"]},"Response___type_60a458dcbc33":{"type":"object","properties":{"label":{"type":"string"},"count":{"type":"number"}},"additionalProperties":true,"required":["label","count"]},"Response___type_d24173d0d7d1":{"type":"object","properties":{"symbol":{"type":"string"},"currency":{"anyOf":[{"type":"null"},{"type":"string"}]},"source":{"anyOf":[{"type":"null"},{"type":"string"}]},"candles":{"type":"array","items":{"$ref":"#/components/schemas/Response_ResearchCandle_00682ae3606a"}},"truncated":{"type":"boolean"},"status":{"enum":["ready","unavailable"]}},"additionalProperties":true,"required":["symbol","currency","source","candles","truncated","status"]},"Response___object_ffba4abc3631":{"type":"object","properties":{"annotation":{"$ref":"#/components/schemas/Response_EurekaRunAnnotation_769a6e87f3e9"}},"additionalProperties":true,"required":["annotation"]},"Response_EurekaRunAnnotation_769a6e87f3e9":{"type":"object","properties":{"runId":{"type":"string"},"researchNotes":{"type":"string"},"validationPlan":{"$ref":"#/components/schemas/Response_EurekaRunValidationPlan_f2643ba85f37"},"revision":{"type":"number"},"updatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["runId","researchNotes","validationPlan","revision","updatedAt"]},"Response_EurekaRunValidationPlan_f2643ba85f37":{"type":"object","properties":{"benchmark":{"type":"string"},"costsAndRegimes":{"type":"string"},"reviewNote":{"type":"string"}},"additionalProperties":true,"required":["benchmark","costsAndRegimes","reviewNote"]},"Response___object_28fda9aec344":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Input_EurekaRunValidationPlan_2f3bdbd0b754":{"type":"object","properties":{"benchmark":{"type":"string"},"costsAndRegimes":{"type":"string"},"reviewNote":{"type":"string"}},"additionalProperties":false,"required":["benchmark","costsAndRegimes","reviewNote"]},"Response___object_eeb298ec9ac1":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_38fbd956df5d"}}},"additionalProperties":true,"required":["items"]},"Response___object_38fbd956df5d":{"type":"object","properties":{"kind":{"type":"string"},"referenceId":{"type":"string"},"label":{"type":"string"},"savedAt":{"type":"string"}},"additionalProperties":true,"required":["kind","referenceId","label","savedAt"]},"Response___object_17fb41a22a72":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___type_1fcadcfb0f57":{"type":"object","properties":{"components":{"type":"array","items":{"$ref":"#/components/schemas/Response_WeaversStrategyComponentRecord_088d3a790281"}}},"additionalProperties":true,"required":["components"]},"Response_WeaversStrategyComponentRecord_088d3a790281":{"type":"object","properties":{"componentType":{"enum":["stage_a","stage_b"]},"componentKey":{"type":"string"},"label":{"type":"string"},"method":{"$ref":"#/components/schemas/Response_OptimisationMethod_b5243df56944"},"sourceKind":{"enum":["weavers_preset","notebook_component","uploaded_component"]},"trustStatus":{"enum":["preset","unvalidated","optimisation_validated"]},"lifecycleStatus":{"enum":["rejected","candidate","promoted"]},"executionJobId":{"anyOf":[{"type":"null"},{"type":"string"}]},"sourceSha256":{"anyOf":[{"type":"null"},{"type":"string"}]},"artifact":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_WeaversStrategyComponentManifest_4fb21d214800"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["componentType","componentKey","label","sourceKind","trustStatus","lifecycleStatus","executionJobId","sourceSha256","artifact","createdAt","updatedAt"]},"Response_OptimisationMethod_b5243df56944":{"type":"object","properties":{"strategyLabel":{"type":"string"},"purpose":{"type":"string"},"task":{"type":"string"},"algorithm":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_2c8c602e098d"}]},"componentVersion":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["strategyLabel","purpose","task","algorithm","componentVersion"]},"Response___type_2c8c602e098d":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"family":{"type":"string"}},"additionalProperties":true,"required":["id","label","family"]},"Response_WeaversStrategyComponentManifest_4fb21d214800":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.strategy_component.v1"},"version":{"type":"number","const":1},"componentType":{"enum":["stage_a","stage_b"]},"componentKey":{"type":"string"},"label":{"type":"string"},"method":{"$ref":"#/components/schemas/Response_OptimisationMethod_b5243df56944"},"sourceKind":{"type":"string","const":"notebook_component"},"notebookKey":{"type":"string"},"executionJobId":{"anyOf":[{"type":"null"},{"type":"string"}]},"cellId":{"type":"string"},"cellIds":{"type":"array","items":{"type":"string"}},"sourceSha256":{"type":"string"},"createdAt":{"type":"string"},"interface":{"anyOf":[{"$ref":"#/components/schemas/Response_WeaversStageAComponentInterface_85a879d33033"},{"$ref":"#/components/schemas/Response_WeaversStageBComponentInterface_eede49727f22"}]},"runtime":{"$ref":"#/components/schemas/Response_WeaversStrategyComponentPythonRuntime_ad84cbc98b64"},"files":{"type":"array","items":{"$ref":"#/components/schemas/Response_WeaversStrategyComponentFile_78dd65c999b0"}},"metrics":{"$ref":"#/components/schemas/Response_Record_6cee9412cb74"},"notes":{"type":"string"}},"additionalProperties":true,"required":["schema","version","componentType","componentKey","label","sourceKind","notebookKey","executionJobId","cellId","sourceSha256","createdAt","interface","files"]},"Response_WeaversStageAComponentInterface_85a879d33033":{"type":"object","properties":{"kind":{"type":"string","const":"stage_a"},"input":{"type":"string","const":"weavers.ohlcv_panel.v1"},"output":{"type":"string","const":"weavers.stage_a_signal_frame.v1"},"timestampColumn":{"type":"string"},"symbolColumn":{"type":"string"},"signalColumn":{"type":"string"},"probabilityColumn":{"anyOf":[{"type":"null"},{"type":"string"}]},"horizonBars":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["kind","input","output","timestampColumn","symbolColumn","signalColumn"]},"Response_WeaversStageBComponentInterface_eede49727f22":{"type":"object","properties":{"kind":{"type":"string","const":"stage_b"},"input":{"type":"string","const":"weavers.stage_a_signal_frame.v1"},"output":{"type":"string","const":"weavers.execution_policy.v1"},"timestampColumn":{"type":"string"},"symbolColumn":{"type":"string"},"signalColumn":{"type":"string"},"policyConfigPath":{"anyOf":[{"type":"null"},{"type":"string"}]},"requiredColumns":{"type":"array","items":{"type":"string"}}},"additionalProperties":true,"required":["kind","input","output","timestampColumn","symbolColumn","signalColumn"]},"Response_WeaversStrategyComponentPythonRuntime_ad84cbc98b64":{"type":"object","properties":{"kind":{"type":"string","const":"python_source"},"entrypoint":{"enum":["weavers_stage_a","weavers_stage_b"]},"source":{"type":"string"},"sourceSha256":{"type":"string"},"selectedCellIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":true,"required":["kind","entrypoint","source","sourceSha256","selectedCellIds"]},"Response_WeaversStrategyComponentFile_78dd65c999b0":{"type":"object","properties":{"role":{"enum":["source","predictor","policy","metrics","plot","manifest","model","other"]},"path":{"type":"string"},"mediaType":{"type":"string"},"bytes":{"type":"number"}},"additionalProperties":true,"required":["role","path"]},"Response_Record_6cee9412cb74":{"type":"object","properties":{},"additionalProperties":{"type":"number"}},"Response___type_8d0c6e3e97a1":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Input_WeaversStageAComponentInterface_f9d100b3c48c":{"type":"object","properties":{"kind":{"type":"string","const":"stage_a"},"input":{"type":"string","const":"weavers.ohlcv_panel.v1"},"output":{"type":"string","const":"weavers.stage_a_signal_frame.v1"},"timestampColumn":{"type":"string"},"symbolColumn":{"type":"string"},"signalColumn":{"type":"string"},"probabilityColumn":{"anyOf":[{"type":"null"},{"type":"string"}]},"horizonBars":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":false,"required":["kind","input","output","timestampColumn","symbolColumn","signalColumn"]},"Input_WeaversStageBComponentInterface_800bf04c5ecc":{"type":"object","properties":{"kind":{"type":"string","const":"stage_b"},"input":{"type":"string","const":"weavers.stage_a_signal_frame.v1"},"output":{"type":"string","const":"weavers.execution_policy.v1"},"timestampColumn":{"type":"string"},"symbolColumn":{"type":"string"},"signalColumn":{"type":"string"},"policyConfigPath":{"anyOf":[{"type":"null"},{"type":"string"}]},"requiredColumns":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["kind","input","output","timestampColumn","symbolColumn","signalColumn"]},"Input_WeaversStrategyComponentFile_cac67495bcf0":{"type":"object","properties":{"role":{"enum":["source","predictor","policy","metrics","plot","manifest","model","other"]},"path":{"type":"string"},"mediaType":{"type":"string"},"bytes":{"type":"number"}},"additionalProperties":false,"required":["role","path"]},"Input_Record_4eeb28d96cf7":{"type":"object","properties":{},"additionalProperties":{"type":"number"}},"Response___type_40df963d1aef":{"type":"object","properties":{"component":{"$ref":"#/components/schemas/Response_WeaversStrategyComponentRecord_088d3a790281"}},"additionalProperties":true,"required":["component"]},"Response_EurekaStrategyList_b88e95964ead":{"type":"object","properties":{"strategies":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaStrategySummary_e5bb0c8e42de"}}},"additionalProperties":true,"required":["strategies"]},"Response_EurekaStrategySummary_e5bb0c8e42de":{"type":"object","properties":{"strategyId":{"type":"string"},"name":{"type":"string"},"revision":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"tickerCount":{"type":"number"},"research":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EurekaStrategyResearch_ab1d53d90a33"}]}},"additionalProperties":true,"required":["strategyId","name","revision","createdAt","updatedAt"]},"Response___object_18e1d7f7add5":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Input_EurekaStrategyDraft_fe3fed0bc3dd":{"type":"object","properties":{"schema":{"type":"string","const":"weavers.strategy-draft.v1"},"tickerSymbols":{"type":"array","items":{"type":"string"}},"configuration":{"$ref":"#/components/schemas/Input_Omit_0dcca9f226fe"},"research":{"$ref":"#/components/schemas/Input_EurekaStrategyResearch_f322c92ae42c"}},"additionalProperties":false,"required":["schema","tickerSymbols","configuration"]},"Input_Omit_0dcca9f226fe":{"type":"object","properties":{"compute":{"$ref":"#/components/schemas/Input_ExperimentComputeBudget_3c8a35e60dbb"},"experimentName":{"type":"string"},"experimentKey":{"type":"string","const":"tp_sl_two_stage"},"templateKey":{"type":"string","const":"tp_sl_two_stage_nsga2_v1"},"cluster":{"type":"string","const":"dev"},"parameters":{"$ref":"#/components/schemas/Input_TpSlTwoStageParameters_54ae630cd507"},"executionPlan":{"$ref":"#/components/schemas/Input_TpSlExecutionPlan_40e23743a052"},"seedConfig":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Input_OptimisationSeedConfig_475f565b3f38"}]}},"additionalProperties":false,"required":["experimentKey","templateKey","cluster","parameters","executionPlan"]},"Input_EurekaStrategyResearch_f322c92ae42c":{"type":"object","properties":{"hypothesis":{"type":"string"},"source":{"$ref":"#/components/schemas/Input___type_51bb5ec5a4db"}},"additionalProperties":false,"required":["hypothesis"]},"Input___type_51bb5ec5a4db":{"type":"object","properties":{"kind":{"enum":["channel_observation","published_strategy"]},"id":{"type":"string"},"label":{"type":"string"},"observedAt":{"type":"string"}},"additionalProperties":false,"required":["kind","id","label","observedAt"]},"Response___object_d68fdea5f165":{"type":"object","properties":{"strategy":{"$ref":"#/components/schemas/Response_EurekaStrategyWorkspace_0675ae7b81f1"}},"additionalProperties":true,"required":["strategy"]},"Response_EurekaTickerCatalog_87d8c6e3bb9e":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaTickerCatalogItem_3fee3c4e2b23"}},"allSymbols":{"type":"array","items":{"type":"string"}},"filteredSymbols":{"type":"array","items":{"type":"string"}},"industries":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_42f75181a6f1"}},"total":{"type":"number"},"filteredTotal":{"type":"number"},"offset":{"type":"number"},"pageSize":{"type":"number"},"asOf":{"type":"string"}},"additionalProperties":true,"required":["items","allSymbols","filteredSymbols","industries","total","filteredTotal","offset","pageSize","asOf"]},"Response_EurekaTickerCatalogItem_3fee3c4e2b23":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":"string"},"industry":{"anyOf":[{"type":"null"},{"type":"string"}]},"exchange":{"type":"string"},"channel":{"$ref":"#/components/schemas/Response_EurekaTickerChannelSummary_335cdbd7f3cb"}},"additionalProperties":true,"required":["symbol","name","industry","exchange","channel"]},"Response_EurekaTickerChannelSummary_335cdbd7f3cb":{"type":"object","properties":{"status":{"enum":["stale","available","unavailable"]},"direction":{"anyOf":[{"type":"null"},{"type":"string","const":"ascending"},{"type":"string","const":"descending"}]},"tradingDay":{"anyOf":[{"type":"null"},{"type":"string"}]},"r2":{"anyOf":[{"type":"null"},{"type":"number"}]},"preview":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_ac32ffc9322e"}]}},"additionalProperties":true,"required":["status","direction","tradingDay","r2","preview"]},"Response___type_ac32ffc9322e":{"type":"object","properties":{"candles":{"type":"array","items":{"$ref":"#/components/schemas/Response_ChannelBoardCandle_735a42e689da"}},"fit":{"$ref":"#/components/schemas/Response_ChannelBoardFit_0517dab13136"}},"additionalProperties":true,"required":["candles","fit"]},"Response_ChannelBoardCandle_735a42e689da":{"type":"object","properties":{"time":{"type":"string"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"}},"additionalProperties":true,"required":["time","open","high","low","close"]},"Response_ChannelBoardFit_0517dab13136":{"type":"object","properties":{"r2":{"type":"number"},"isValid":{"type":"boolean"},"points":{"type":"number"},"slope":{"type":"number"},"endMid":{"type":"number"},"upperOffset":{"type":"number"},"lowerOffset":{"type":"number"},"algoVersion":{"type":"string"},"dataSource":{"type":"string"},"computedAt":{"type":"string"}},"additionalProperties":true,"required":["r2","isValid","points","slope","endMid","upperOffset","lowerOffset","algoVersion","dataSource","computedAt"]},"Response___type_42f75181a6f1":{"type":"object","properties":{"label":{"type":"string"},"symbols":{"type":"array","items":{"type":"string"}}},"additionalProperties":true,"required":["label","symbols"]},"Response___object_101de8318e56":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_bf0a11ba7afa":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_d0513b7db9b1":{"type":"object","properties":{"previews":{"$ref":"#/components/schemas/Response_Record_5ce10b448b70"}},"additionalProperties":true,"required":["previews"]},"Response_Record_5ce10b448b70":{"type":"object","properties":{},"additionalProperties":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_ac32ffc9322e"}]}},"Response_HumanSupportConversationBundle_1f24a55c9f5b":{"type":"object","properties":{"conversation":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_HumanSupportConversationRecord_d04a4b8c3e6e"}]},"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_HumanSupportMessageRecord_4953e98a6bed"}}},"additionalProperties":true,"required":["conversation","items"]},"Response_HumanSupportConversationRecord_d04a4b8c3e6e":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"number"},"title":{"type":"string"},"status":{"enum":["waiting_for_human","waiting_for_user","resolved"]},"preview":{"anyOf":[{"type":"null"},{"type":"string"}]},"lastMessageAt":{"type":"string"},"lastUserMessageAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"lastAgentMessageAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"claimedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"resolvedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["id","userId","title","status","preview","lastMessageAt","lastUserMessageAt","lastAgentMessageAt","claimedAt","resolvedAt","createdAt","updatedAt","metadata"]},"Response_HumanSupportMessageRecord_4953e98a6bed":{"type":"object","properties":{"id":{"type":"string"},"conversationId":{"type":"string"},"senderRole":{"enum":["user","system","agent"]},"senderUserId":{"anyOf":[{"type":"null"},{"type":"number"}]},"content":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["id","conversationId","senderRole","senderUserId","content","metadata","createdAt"]},"Response___object_bf087a58fc99":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___type_c9e4fc5da512":{"type":"object","properties":{"conversation":{"$ref":"#/components/schemas/Response_HumanSupportConversationRecord_d04a4b8c3e6e"},"message":{"$ref":"#/components/schemas/Response_HumanSupportMessageRecord_4953e98a6bed"},"createdConversation":{"type":"boolean"}},"additionalProperties":true,"required":["conversation","message","createdConversation"]},"Input_IdeaAssistantMessage_b62b86ef035e":{"type":"object","properties":{"role":{"enum":["user","assistant"]},"text":{"type":"string"}},"additionalProperties":false,"required":["role","text"]},"Response_IdeaAssistantTurnResponse_8909af5284f3":{"type":"object","properties":{"kind":{"enum":["propose","clarify","unsupported","answer"]},"message":{"type":"string"},"changes":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/Response_Object_890db951863a"},{"$ref":"#/components/schemas/Response_Object_d1e843104486"}]}},"facts":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaRunFact_448d1ad1ec12"}}},"additionalProperties":true,"required":["kind","message","changes","facts"]},"Response_Object_890db951863a":{"type":"object","properties":{"controlId":{"type":"string"},"value":{"anyOf":[{"type":"null"},{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"reason":{"type":"string"},"ok":{"type":"boolean","const":true},"label":{"type":"string"},"before":{"anyOf":[{"type":"null"},{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"after":{"anyOf":[{"type":"null"},{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]}},"additionalProperties":true,"required":["controlId","value","reason","ok","label","before","after"]},"Response_Object_d1e843104486":{"type":"object","properties":{"controlId":{"type":"string"},"value":{"anyOf":[{"type":"null"},{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"reason":{"type":"string"},"ok":{"type":"boolean","const":false},"label":{"anyOf":[{"type":"null"},{"type":"string"}]},"error":{"type":"string"}},"additionalProperties":true,"required":["controlId","value","reason","ok","label","error"]},"Response_EurekaRunFact_448d1ad1ec12":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"value":{"anyOf":[{"type":"null"},{"type":"string"},{"type":"number"}]}},"additionalProperties":true,"required":["key","label","value"]},"Response___object_dfc2d62674e4":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_81561cc9ce34":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_35743f74425a":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"}},"additionalProperties":true,"required":["error","code","retryable"]},"Response___type_d69e571c65cd":{"type":"object","properties":{"error":{"type":"string"},"code":{"enum":["conversation_busy","knowledge_assistant_disabled","knowledge_assistant_forbidden","knowledge_release_unavailable","retrieval_plan_invalid","retrieval_no_sources","request_conflict","rag_timeout","nvidia_unavailable","rag_invalid_response","conversation_not_found","proposal_not_found","proposal_forbidden"]},"retryable":{"type":"boolean"}},"additionalProperties":true,"required":["error","code","retryable"]},"Response___type_e556260b78e2":{"type":"object","properties":{"status":{"type":"string","const":"processing"},"requestKey":{"type":"string"}},"additionalProperties":true,"required":["status","requestKey"]},"Response___type_7e137313d90d":{"type":"object","properties":{"status":{"type":"string","const":"completed"},"requestKey":{"type":"string"},"response":{"$ref":"#/components/schemas/Response_AssistantSendResult_b03684a902a0"}},"additionalProperties":true,"required":["status","requestKey","response"]},"Response_AssistantSendResult_b03684a902a0":{"type":"object","properties":{"model":{"type":"string"},"answer":{"type":"string"},"responseMode":{"enum":["answer","document_draft"]},"retrievalPlanHash":{"type":"string"},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Response_KnowledgeAssistantSource_2df1fa89b85d"}},"conversationId":{"type":"string"},"userMessage":{"$ref":"#/components/schemas/Response_ChatMessageRecord_f015326eaf8c"},"assistantMessage":{"$ref":"#/components/schemas/Response_ChatMessageRecord_f015326eaf8c"}},"additionalProperties":true,"required":["model","answer","responseMode","retrievalPlanHash","sources","conversationId","userMessage","assistantMessage"]},"Response_KnowledgeAssistantSource_2df1fa89b85d":{"type":"object","properties":{"citation":{"type":"number"},"title":{"type":"string"},"documentKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"revisionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"scopeKey":{"type":"string"},"sourceProvider":{"type":"string"},"evidenceKinds":{"type":"array","items":{"type":"string"}},"authority":{"type":"string"},"sensitivity":{"type":"string"},"excerpt":{"type":"string"},"provenance":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["citation","title","documentKey","revisionId","scopeKey","sourceProvider","evidenceKinds","authority","sensitivity","excerpt","provenance"]},"Response___type_508ae3b043b8":{"type":"object","properties":{"status":{"type":"string","const":"failed"},"requestKey":{"type":"string"},"code":{"enum":["conversation_busy","knowledge_assistant_disabled","knowledge_assistant_forbidden","knowledge_release_unavailable","retrieval_plan_invalid","retrieval_no_sources","request_conflict","rag_timeout","nvidia_unavailable","rag_invalid_response","conversation_not_found","proposal_not_found","proposal_forbidden"]},"retryable":{"type":"boolean"}},"additionalProperties":true,"required":["status","requestKey","code","retryable"]},"Response_StrategyProposalPrefill_30dd9788155f":{"type":"object","properties":{"conversationId":{"type":"string"},"messageId":{"type":"string"},"title":{"type":"string"},"content":{"type":"string"},"responseMode":{"type":"string","const":"document_draft"},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Response_KnowledgeAssistantSource_2df1fa89b85d"}}},"additionalProperties":true,"required":["conversationId","messageId","title","content","responseMode","sources"]},"Response_ChannelBoardResponse_c4c1e65f2a02":{"type":"object","properties":{"run":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_ChannelBoardRun_df3440d83aff"}]},"gates":{"$ref":"#/components/schemas/Response___type_9bab059a9bf0"},"channels":{"type":"array","items":{"$ref":"#/components/schemas/Response_ChannelBoardChannel_efbedbd4f98f"}},"logoDevPublishableKey":{"type":"string"}},"additionalProperties":true,"required":["run","gates","channels"]},"Response_ChannelBoardRun_df3440d83aff":{"type":"object","properties":{"day":{"type":"string"},"previousDay":{"anyOf":[{"type":"null"},{"type":"string"}]},"nextDay":{"anyOf":[{"type":"null"},{"type":"string"}]},"latestDay":{"type":"string"},"recentDays":{"type":"array","items":{"type":"string"}},"coverage":{"$ref":"#/components/schemas/Response___type_0745c4a28c3a"},"complete":{"type":"boolean"},"computedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"counts":{"$ref":"#/components/schemas/Response_Record_bc01a5cf92f1"}},"additionalProperties":true,"required":["day","previousDay","nextDay","latestDay","recentDays","coverage","complete","computedAt","counts"]},"Response___type_0745c4a28c3a":{"type":"object","properties":{"checked":{"type":"number"},"expected":{"type":"number"}},"additionalProperties":true,"required":["checked","expected"]},"Response_Record_bc01a5cf92f1":{"type":"object","properties":{},"additionalProperties":true},"Response___type_9bab059a9bf0":{"type":"object","properties":{"r2Min":{"type":"number"},"inBandMin":{"type":"number"},"minPoints":{"type":"number"}},"additionalProperties":true,"required":["r2Min","inBandMin","minPoints"]},"Response_ChannelBoardChannel_efbedbd4f98f":{"type":"object","properties":{"channelId":{"type":"number"},"symbol":{"type":"string"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"assetType":{"anyOf":[{"type":"null"},{"type":"string","const":"other"},{"type":"string","const":"stock"},{"type":"string","const":"etf"}]},"exchange":{"anyOf":[{"type":"null"},{"type":"string"}]},"listingCountry":{"anyOf":[{"type":"null"},{"type":"string"}]},"timeframe":{"type":"string"},"windowSize":{"type":"number"},"direction":{"enum":["ascending","descending"]},"state":{"enum":["new","continuing","ended"]},"fit":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_ChannelBoardFit_0517dab13136"}]},"lifecycle":{"$ref":"#/components/schemas/Response_ChannelBoardLifecycle_02b92c6943dd"},"candles":{"type":"array","items":{"$ref":"#/components/schemas/Response_ChannelBoardCandle_735a42e689da"}},"niche":{"$ref":"#/components/schemas/Response___type_9bda71298aa0"},"article":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_ChannelBoardArticle_31e273b0c9f4"}]}},"additionalProperties":true,"required":["channelId","symbol","name","assetType","timeframe","windowSize","direction","state","fit","lifecycle","candles","article"]},"Response_ChannelBoardLifecycle_02b92c6943dd":{"type":"object","properties":{"consecutiveRuns":{"type":"number"},"reachesLookback":{"type":"boolean"},"firstRunDay":{"type":"string"},"lastValidDay":{"type":"string"},"recentRuns":{"type":"array","items":{"type":"boolean"}}},"additionalProperties":true,"required":["consecutiveRuns","reachesLookback","firstRunDay","lastValidDay","recentRuns"]},"Response___type_9bda71298aa0":{"type":"object","properties":{"nicheId":{"type":"number"},"nicheKey":{"type":"string"},"name":{"type":"string"}},"additionalProperties":true,"required":["nicheId","nicheKey","name"]},"Response_ChannelBoardArticle_31e273b0c9f4":{"type":"object","properties":{"id":{"type":"string"},"kind":{"enum":["signal","report"]},"articleType":{"enum":["upward_channel","downward_channel","generic"]},"symbol":{"type":"string"},"instrumentName":{"anyOf":[{"type":"null"},{"type":"string"}]},"timeframe":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"url":{"type":"string"},"sourceName":{"type":"string"},"publishedAt":{"type":"string"},"readingTime":{"type":"string"},"coverImage":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"reactions":{"type":"number"},"comments":{"type":"number"},"likes":{"type":"number"},"liked":{"type":"boolean"},"saved":{"type":"boolean"},"accessTier":{"enum":["free","premium"]},"isUnlocked":{"type":"boolean"},"unlockCost":{"anyOf":[{"type":"null"},{"type":"number"}]},"lockedReason":{"anyOf":[{"type":"null"},{"type":"string","const":"auth_required"},{"type":"string","const":"entitlement_required"}]}},"additionalProperties":true,"required":["id","kind","articleType","symbol","instrumentName","timeframe","title","summary","url","sourceName","publishedAt","readingTime","coverImage","tags","reactions","comments","likes","liked","saved","accessTier","isUnlocked","unlockCost","lockedReason"]},"Response___object_59d4d3defef2":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response_UserProfileDTO_6891e42bf3e9":{"type":"object","properties":{"id":{"type":"number"},"email":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"anyOf":[{"type":"null"},{"type":"string"}]},"coins":{"type":"number"},"referralCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"},"lastActiveDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"streakCount":{"type":"number"},"plan":{"anyOf":[{"type":"null"},{"type":"string"}]},"role":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["id","displayName","coins","createdAt"]},"Response___object_cd396428aeb6":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___type_4cb717f68ce0":{"type":"object","properties":{"status":{"type":"string","const":"updated"},"timezone":{"type":"string"},"lockedUntil":{"type":"string"},"cooldownHours":{"type":"number"}},"additionalProperties":true,"required":["status","timezone","lockedUntil","cooldownHours"]},"Response___object_4be69ee46bab":{"type":"object","properties":{"error":{"type":"string"},"lockedUntil":{"type":"string"},"cooldownHours":{"type":"number"},"timezone":{"type":"string"}},"additionalProperties":true,"required":["error","lockedUntil","cooldownHours","timezone"]},"Response___object_7cea1d879698":{"type":"object","properties":{"status":{"type":"string"},"activity":{"$ref":"#/components/schemas/Response___object_b56472c673d7"},"dailyLogin":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___object_f3712022bc08"}]},"streak":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_fd37247466d7"},{"$ref":"#/components/schemas/Response___type_aea55d31941e"}]}},"additionalProperties":true,"required":["status","activity","dailyLogin","streak"]},"Response___object_b56472c673d7":{"type":"object","properties":{"localDate":{"type":"string"},"activeSeconds":{"type":"number"},"addedSeconds":{"type":"number"},"thresholdSeconds":{"type":"number"},"awarded":{"type":"boolean"},"reward":{"type":"number"},"coinBalance":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["localDate","activeSeconds","addedSeconds","thresholdSeconds","awarded","reward","coinBalance"]},"Response___object_f3712022bc08":{"type":"object","properties":{"awarded":{"type":"boolean"},"reward":{"type":"number"},"balance":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["awarded","reward","balance"]},"Response___type_fd37247466d7":{"type":"object","properties":{"status":{"type":"string","const":"updated"},"streakCount":{"type":"number"},"lastActiveDate":{"type":"string"},"awarded":{"type":"boolean"},"reward":{"type":"number"}},"additionalProperties":true,"required":["status","streakCount","lastActiveDate","awarded","reward"]},"Response___type_aea55d31941e":{"type":"object","properties":{"status":{"type":"string","const":"no_op"},"streakCount":{"type":"number"},"lastActiveDate":{"type":"string"}},"additionalProperties":true,"required":["status","streakCount","lastActiveDate"]},"Response_UserInteractionsDTO_22c72218479d":{"type":"object","properties":{"saved":{"type":"array","items":{"type":"string"}},"liked":{"type":"array","items":{"type":"string"}},"shared":{"type":"array","items":{"type":"string"}},"copied":{"type":"array","items":{"type":"string"}}},"additionalProperties":true,"required":["saved","liked","shared","copied"]},"Response___object_c0d15fb35e1f":{"type":"object","properties":{"balance":{"type":"number"},"wallets":{"$ref":"#/components/schemas/Response_WalletBalances_481030fdedb3"},"ledger":{"type":"array","items":{"$ref":"#/components/schemas/Response_CoinLedgerEntry_cc82010f5683"}},"shareCap":{"$ref":"#/components/schemas/Response_ShareCapStatus_5000a5865934"},"onboarding":{"$ref":"#/components/schemas/Response_OnboardingStatus_9f70faf2f991"},"premium":{"$ref":"#/components/schemas/Response_PremiumSubscriptionSnapshot_db7b7c518c10"},"sandboxEnabled":{"type":"boolean"}},"additionalProperties":true,"required":["balance","wallets","ledger","shareCap","onboarding","premium","sandboxEnabled"]},"Response_CoinLedgerEntry_cc82010f5683":{"type":"object","properties":{"id":{"type":"number"},"sourceType":{"type":"string"},"sourceId":{"type":"string"},"amount":{"type":"number"},"createdAt":{"type":"string"},"metadata":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}]},"walletType":{"enum":["earned","promo","purchased"]},"expiresAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"provider":{"anyOf":[{"type":"null"},{"type":"string"}]},"externalReference":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["id","sourceType","sourceId","amount","createdAt","metadata","walletType","expiresAt","provider","externalReference"]},"Response_ShareCapStatus_5000a5865934":{"type":"object","properties":{"cap":{"type":"number"},"used":{"type":"number"},"remaining":{"type":"number"},"timezone":{"type":"string"},"localDate":{"type":"string"},"resetsAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["cap","used","remaining","timezone","localDate","resetsAt"]},"Response_OnboardingStatus_9f70faf2f991":{"type":"object","properties":{"completedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"reward":{"type":"number"}},"additionalProperties":true,"required":["completedAt","reward"]},"Response_PremiumSubscriptionSnapshot_db7b7c518c10":{"type":"object","properties":{"status":{"enum":["active","inactive","canceled"]},"hasPremiumAccess":{"type":"boolean"},"tier":{"anyOf":[{"type":"null"},{"type":"string"}]},"provider":{"anyOf":[{"type":"null"},{"type":"string"}]},"stipendCredits":{"type":"number"},"currentPeriodStart":{"anyOf":[{"type":"null"},{"type":"string"}]},"currentPeriodEnd":{"anyOf":[{"type":"null"},{"type":"string"}]},"canceledAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"stipendAwardedNow":{"type":"boolean"},"stipendAmountAwarded":{"type":"number"}},"additionalProperties":true,"required":["status","hasPremiumAccess","tier","provider","stipendCredits","currentPeriodStart","currentPeriodEnd","canceledAt","stipendAwardedNow","stipendAmountAwarded"]},"Response_OnboardingCompletionResult_0f594edf7b38":{"type":"object","properties":{"status":{"enum":["completed","already_completed","profile_incomplete"]},"completedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"reward":{"type":"number"},"balance":{"type":"number"},"missing":{"$ref":"#/components/schemas/Response___type_bea38bf90784"}},"additionalProperties":true,"required":["status","completedAt","reward"]},"Response___type_bea38bf90784":{"type":"object","properties":{"displayName":{"type":"boolean"},"avatar":{"type":"boolean"}},"additionalProperties":true,"required":["displayName","avatar"]},"Response___object_7e815481d794":{"type":"object","properties":{"niches":{"type":"array","items":{"$ref":"#/components/schemas/Response_NicheResearchContext_613a16160362"}}},"additionalProperties":true,"required":["niches"]},"Response_NicheResearchContext_613a16160362":{"type":"object","properties":{"nicheId":{"type":"number"},"nicheKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"displayName":{"type":"string"},"source":{"type":"string"},"visibility":{"type":"string"},"targetRegime":{"anyOf":[{"type":"null"},{"type":"string"}]},"membershipKind":{"enum":["static","channel_episode"]},"assetType":{"anyOf":[{"type":"null"},{"type":"string"}]},"countryCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"exchange":{"anyOf":[{"type":"null"},{"type":"string"}]},"certifiedCount":{"type":"number"},"liveCount":{"type":"number"},"medianDailyDollarVolume":{"anyOf":[{"type":"null"},{"type":"number"}]},"realizedVolatility":{"anyOf":[{"type":"null"},{"type":"number"}]},"crossSectionalDispersion":{"anyOf":[{"type":"null"},{"type":"number"}]},"historyDepthDays":{"anyOf":[{"type":"null"},{"type":"number"}]},"pricedConstituentCount":{"anyOf":[{"type":"null"},{"type":"number"}]},"metricsAsOfDate":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["nicheId","nicheKey","displayName","source","visibility","targetRegime","membershipKind","assetType","countryCode","exchange","certifiedCount","liveCount","medianDailyDollarVolume","realizedVolatility","crossSectionalDispersion","historyDepthDays","pricedConstituentCount","metricsAsOfDate"]},"Response___object_f6db36c63b70":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_0446b5a17102":{"type":"object","properties":{"niche":{"$ref":"#/components/schemas/Response_NicheDetail_8701dc445606"}},"additionalProperties":true,"required":["niche"]},"Response_NicheDetail_8701dc445606":{"type":"object","properties":{"nicheId":{"type":"number"},"nicheKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"displayName":{"type":"string"},"source":{"type":"string"},"visibility":{"type":"string"},"targetRegime":{"anyOf":[{"type":"null"},{"type":"string"}]},"membershipKind":{"enum":["static","channel_episode"]},"assetType":{"anyOf":[{"type":"null"},{"type":"string"}]},"countryCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"exchange":{"anyOf":[{"type":"null"},{"type":"string"}]},"certifiedCount":{"type":"number"},"liveCount":{"type":"number"},"medianDailyDollarVolume":{"anyOf":[{"type":"null"},{"type":"number"}]},"realizedVolatility":{"anyOf":[{"type":"null"},{"type":"number"}]},"crossSectionalDispersion":{"anyOf":[{"type":"null"},{"type":"number"}]},"historyDepthDays":{"anyOf":[{"type":"null"},{"type":"number"}]},"pricedConstituentCount":{"anyOf":[{"type":"null"},{"type":"number"}]},"metricsAsOfDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"themeTags":{"type":"array","items":{"type":"string"}},"description":{"anyOf":[{"type":"null"},{"type":"string"}]},"certifiedDefinition":{"type":"string"},"sort":{"$ref":"#/components/schemas/Response___type_e49c878e5e10"},"certifiedStrategies":{"type":"array","items":{"$ref":"#/components/schemas/Response_NicheCertifiedStrategy_7a31759680cd"}},"reference":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_NicheReference_e15c0a35506a"}]}},"additionalProperties":true,"required":["nicheId","nicheKey","displayName","source","visibility","targetRegime","membershipKind","assetType","countryCode","exchange","certifiedCount","liveCount","medianDailyDollarVolume","realizedVolatility","crossSectionalDispersion","historyDepthDays","pricedConstituentCount","metricsAsOfDate","themeTags","description","certifiedDefinition","sort","certifiedStrategies","reference"]},"Response___type_e49c878e5e10":{"type":"object","properties":{"key":{"enum":["sample_depth","deflated_sharpe","raw_sharpe","paper_consistency","certified_at"]},"direction":{"enum":["asc","desc"]}},"additionalProperties":true,"required":["key","direction"]},"Response_NicheCertifiedStrategy_7a31759680cd":{"type":"object","properties":{"strategyRegistryId":{"type":"number"},"strategyId":{"anyOf":[{"type":"null"},{"type":"string"}]},"alias":{"anyOf":[{"type":"null"},{"type":"string"}]},"displayName":{"type":"string"},"artifactId":{"anyOf":[{"type":"null"},{"type":"number"}]},"lifecycleStatus":{"anyOf":[{"type":"null"},{"type":"string"}]},"lifecycle":{"anyOf":[{"type":"null"},{"type":"string","const":"live"},{"type":"string","const":"stress_testing"},{"type":"string","const":"stress_failed"},{"type":"string","const":"paper_active"},{"type":"string","const":"paper_failed"},{"type":"string","const":"retired"},{"type":"string","const":"experimental"}]},"certifiedAt":{"type":"string"},"evidence":{"$ref":"#/components/schemas/Response_NicheCertifiedStrategyEvidence_1a774ea954e9"},"disclosure":{"$ref":"#/components/schemas/Response___type_ae93ff780aed"},"limitations":{"type":"array","items":{"type":"string"}},"sortKeyMissing":{"type":"boolean"}},"additionalProperties":true,"required":["strategyRegistryId","strategyId","alias","displayName","artifactId","lifecycleStatus","lifecycle","certifiedAt","evidence","disclosure","limitations","sortKeyMissing"]},"Response_NicheCertifiedStrategyEvidence_1a774ea954e9":{"type":"object","properties":{"sampleDepth":{"$ref":"#/components/schemas/Response_NicheEvidenceObject_4c8b990b6845"},"deflatedSharpe":{"$ref":"#/components/schemas/Response_NicheEvidenceObject_4c8b990b6845"},"paperConsistency":{"$ref":"#/components/schemas/Response_NicheEvidenceObject_4c8b990b6845"}},"additionalProperties":true,"required":["sampleDepth","deflatedSharpe","paperConsistency"]},"Response_NicheEvidenceObject_4c8b990b6845":{"type":"object","properties":{"state":{"enum":["available","not_yet_available"]},"reason":{"anyOf":[{"type":"null"},{"type":"string"}]},"payload":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["state","reason","payload"]},"Response___type_ae93ff780aed":{"type":"object","properties":{"rawSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"trialCount":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["rawSharpe","trialCount"]},"Response_NicheReference_e15c0a35506a":{"type":"object","properties":{"label":{"type":"string","const":"Reference for comparison"},"benchmarkSymbol":{"type":"string"},"annualisedSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"totalReturn":{"anyOf":[{"type":"null"},{"type":"number"}]},"windowStartDay":{"anyOf":[{"type":"null"},{"type":"string"}]},"windowEndDay":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["label","benchmarkSymbol","annualisedSharpe","totalReturn","windowStartDay","windowEndDay"]},"Response___object_106739f11486":{"type":"object","properties":{"error":{"enum":["niche_key_required","invalid_niche_key"]}},"additionalProperties":true,"required":["error"]},"Response___object_27aa2c7d73d2":{"type":"object","properties":{"error":{"type":"string"},"allowed":{"type":"array","items":{"anyOf":[{"type":"string","const":"sample_depth"},{"type":"string","const":"deflated_sharpe"},{"type":"string","const":"raw_sharpe"},{"type":"string","const":"paper_consistency"},{"type":"string","const":"certified_at"}]}}},"additionalProperties":true,"required":["error","allowed"]},"Response___object_812c665429da":{"type":"object","properties":{"error":{"type":"string"},"allowed":{"type":"array","items":{"anyOf":[{"type":"string","const":"asc"},{"type":"string","const":"desc"}]}}},"additionalProperties":true,"required":["error","allowed"]},"Response_NotificationList_ae462291b59a":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_NotificationItem_6a4eaf2515cb"}},"unreadCount":{"type":"number"}},"additionalProperties":true,"required":["items","unreadCount"]},"Response_NotificationItem_6a4eaf2515cb":{"type":"object","properties":{"id":{"type":"number"},"status":{"enum":["unread","read"]},"createdAt":{"type":"string"},"readAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"presentation":{"$ref":"#/components/schemas/Response_NotificationPresentation_47a56e794294"},"event":{"$ref":"#/components/schemas/Response___type_efbb58f0cb4b"}},"additionalProperties":true,"required":["id","status","createdAt","readAt","presentation","event"]},"Response_NotificationPresentation_47a56e794294":{"type":"object","properties":{"messageKey":{"type":"string"},"reasonLabel":{"type":"string"},"messageParams":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["messageKey","reasonLabel","messageParams"]},"Response___type_efbb58f0cb4b":{"type":"object","properties":{"id":{"type":"number"},"actorId":{"anyOf":[{"type":"null"},{"type":"number"}]},"eventType":{"type":"string"},"objectId":{"anyOf":[{"type":"null"},{"type":"string"}]},"metadata":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["id","actorId","eventType","objectId","metadata","createdAt"]},"Response___object_ae8a7d289ca3":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_b0490d48b379":{"type":"object","properties":{"status":{"type":"string"},"updated":{"type":"number"}},"additionalProperties":true,"required":["status","updated"]},"Response___object_3b6a7b173c04":{"type":"object","properties":{"enabled":{"type":"boolean"},"capacityAvailable":{"type":"boolean"},"acceleratedAvailable":{"type":"boolean"},"twigsPerVcpuHour":{"type":"number"},"twigsPerGiBHour":{"type":"number"},"balance":{"type":"number"},"includedMonthlyVcpuHours":{"type":"number"},"includedRemainingVcpuHours":{"type":"number"},"includedResetsAt":{"type":"string"},"referralCode":{"type":"null"},"referralReward":{"type":"number"}},"additionalProperties":true,"required":["enabled","capacityAvailable","acceleratedAvailable","twigsPerVcpuHour","twigsPerGiBHour","balance","includedMonthlyVcpuHours","includedRemainingVcpuHours","includedResetsAt","referralCode","referralReward"]},"Response___object_f5a4214328b3":{"type":"object","properties":{"capacityAvailable":{"type":"boolean"},"acceleratedAvailable":{"type":"boolean"},"twigsPerVcpuHour":{"type":"number"},"twigsPerGiBHour":{"type":"number"},"balance":{"type":"number"},"includedMonthlyVcpuHours":{"type":"number"},"includedRemainingVcpuHours":{"type":"number"},"includedResetsAt":{"type":"string"},"referralCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"referralReward":{"type":"number"},"enabled":{"type":"boolean"}},"additionalProperties":true,"required":["capacityAvailable","acceleratedAvailable","twigsPerVcpuHour","twigsPerGiBHour","balance","includedMonthlyVcpuHours","includedRemainingVcpuHours","includedResetsAt","referralCode","referralReward","enabled"]},"Response___object_138f3e7d30a0":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response_OptimisationRunListResult_5a5856c8a078":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationRunSummary_3ab8548c4554"}},"nextCursor":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["items","nextCursor"]},"Response_OptimisationRunSummary_3ab8548c4554":{"type":"object","properties":{"runId":{"type":"string"},"experimentName":{"anyOf":[{"type":"null"},{"type":"string"}]},"eurekaStrategyWorkspaceId":{"type":"string"},"candidate":{"$ref":"#/components/schemas/Response_OptimisationCandidate_0692cb2e6c8f"},"runNumber":{"anyOf":[{"type":"null"},{"type":"number"}]},"method":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationRunMethod_7511d364d9a7"}]},"experimentKey":{"type":"string","const":"tp_sl_two_stage"},"templateKey":{"type":"string","const":"tp_sl_two_stage_nsga2_v1"},"status":{"enum":["running","failed","cancelled","queued","completed","cancelling","provisioning","collecting"]},"visibility":{"enum":["private","community"]},"publishedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"cluster":{"type":"string","const":"dev"},"workerCount":{"type":"number"},"workersRunning":{"type":"number"},"workersSucceeded":{"type":"number"},"workersFailed":{"type":"number"},"workersPending":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"finishedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"cancelledAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"requestedByEmail":{"anyOf":[{"type":"null"},{"type":"string"}]},"ingestedRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"rowProgress":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationRunRowProgress_f99966afd28e"}]}},"additionalProperties":true,"required":["runId","experimentKey","templateKey","status","visibility","publishedAt","cluster","workerCount","workersRunning","workersSucceeded","workersFailed","workersPending","createdAt","startedAt","finishedAt","cancelledAt","requestedByEmail"]},"Response_OptimisationCandidate_0692cb2e6c8f":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"nicheId":{"anyOf":[{"type":"null"},{"type":"number"}]},"nicheName":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["id","title","nicheId","nicheName"]},"Response_OptimisationRunMethod_7511d364d9a7":{"type":"object","properties":{"strategyLabel":{"type":"string"},"purpose":{"type":"string"},"task":{"type":"string"},"algorithm":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_2c8c602e098d"}]},"componentVersion":{"anyOf":[{"type":"null"},{"type":"string"}]},"algorithmSource":{"enum":["unavailable","configured","recorded"]}},"additionalProperties":true,"required":["strategyLabel","purpose","task","algorithm","componentVersion","algorithmSource"]},"Response_OptimisationRunRowProgress_f99966afd28e":{"type":"object","properties":{"phase":{"anyOf":[{"type":"null"},{"type":"string"}]},"status":{"anyOf":[{"type":"null"},{"type":"string"}]},"message":{"anyOf":[{"type":"null"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"workerKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"rawRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"selectedRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"stageBInputRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"preHoldoutRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"holdoutRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"stageBSignalRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"stageBTrialRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"stageAFinalRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"stageA2ScoredRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"symbolCount":{"anyOf":[{"type":"null"},{"type":"number"}]},"dayCount":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["phase","status","message","updatedAt","workerKey","rawRows","selectedRows","stageBInputRows","preHoldoutRows","holdoutRows","stageBSignalRows","stageBTrialRows","stageAFinalRows","stageA2ScoredRows","symbolCount","dayCount"]},"Response___type_dc5800166fa6":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response___object_38d1f037573b":{"type":"object","properties":{"runId":{"type":"string"},"candidate":{"$ref":"#/components/schemas/Response_OptimisationCandidate_0692cb2e6c8f"},"status":{"enum":["running","failed","cancelled","queued","completed","cancelling","provisioning","collecting"]},"createdAt":{"type":"string"},"idempotentReplay":{"type":"boolean"}},"additionalProperties":true,"required":["runId","status","createdAt","idempotentReplay"]},"Response___object_dc5800166fa6":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response_OptimisationPreflightResult_4ec7785952ee":{"type":"object","properties":{"ok":{"type":"boolean"},"status":{"enum":["blocked","degraded","invalid","valid"]},"checks":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationPreflightCheck_9ed597a064d6"}},"normalized":{"$ref":"#/components/schemas/Response_OptimisationCreateRequest_255ca9d85ae4"},"dataWindow":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationNicheDataWindow_b56fff31cf13"}]}},"additionalProperties":true,"required":["ok","status","checks"]},"Response_OptimisationPreflightCheck_9ed597a064d6":{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["pass","warn","fail"]},"message":{"type":"string"}},"additionalProperties":true,"required":["id","status","message"]},"Response_OptimisationNicheDataWindow_b56fff31cf13":{"type":"object","properties":{"latestDate":{"type":"string"},"earliestDate":{"type":"string"},"pricedAssetCount":{"type":"number"}},"additionalProperties":true,"required":["latestDate","earliestDate","pricedAssetCount"]},"Response___object_a974bfbf382c":{"type":"object","properties":{"dataWindow":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationNicheDataWindow_b56fff31cf13"}]}},"additionalProperties":true,"required":["dataWindow"]},"Response___object_b8fc5ac74179":{"type":"object","properties":{"niches":{"type":"array","items":{"$ref":"#/components/schemas/Response_PublishedStrategyNicheMapItem_dd3b295a63e0"}}},"additionalProperties":true,"required":["niches"]},"Response_PublishedStrategyNicheMapItem_dd3b295a63e0":{"type":"object","properties":{"nicheId":{"type":"number"},"nicheKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"displayName":{"type":"string"},"source":{"enum":["platform","publish","legacy"]},"visibility":{"enum":["private","public","hidden"]},"strategyKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"universeFilterKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"targetRegime":{"anyOf":[{"type":"null"},{"type":"string"}]},"assetType":{"anyOf":[{"type":"null"},{"type":"string"}]},"countryCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"exchange":{"anyOf":[{"type":"null"},{"type":"string"}]},"themeTags":{"type":"array","items":{"type":"string"}},"metadataFilter":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"membershipKind":{"enum":["static","channel_episode"]},"description":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"assetCount":{"anyOf":[{"type":"null"},{"type":"number"}]},"profiledAssetCount":{"anyOf":[{"type":"null"},{"type":"number"}]},"assetCoverageStatus":{"anyOf":[{"type":"null"},{"type":"string","const":"ready"},{"type":"string","const":"empty"},{"type":"string","const":"incomplete_profiles"}]},"strategyCount":{"type":"number"},"strategies":{"type":"array","items":{"$ref":"#/components/schemas/Response_PublishedStrategyNicheMapStrategy_153a7c907dd2"}}},"additionalProperties":true,"required":["nicheId","nicheKey","displayName","source","visibility","strategyKey","universeFilterKey","targetRegime","assetType","countryCode","exchange","themeTags","metadataFilter","membershipKind","description","createdAt","assetCount","profiledAssetCount","assetCoverageStatus","strategyCount","strategies"]},"Response_PublishedStrategyNicheMapStrategy_153a7c907dd2":{"type":"object","properties":{"strategyRegistryId":{"type":"number"},"strategyId":{"type":"string"},"title":{"type":"string"},"alias":{"anyOf":[{"type":"null"},{"type":"string"}]},"strategyKey":{"type":"string"},"strategyVariant":{"type":"string"},"artifactId":{"type":"number"},"artifactVersion":{"type":"string"},"sourceRunId":{"anyOf":[{"type":"null"},{"type":"string"}]},"publishedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"lifecycleStatus":{"anyOf":[{"type":"null"},{"type":"string"}]},"lifecycleReasonCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"overallStatus":{"enum":["live","stress_testing","stress_failed","paper_active","paper_failed","retired","experimental"]},"entryMode":{"anyOf":[{"type":"null"},{"type":"string","const":"created_new_niche"},{"type":"string","const":"joined_existing_niche"}]},"currentOutcome":{"anyOf":[{"type":"null"},{"type":"string","const":"failed"},{"type":"string","const":"promoted"},{"type":"string","const":"withdrawn"},{"type":"string","const":"in_progress"}]},"forkDepth":{"type":"number"},"parentStrategyRegistryId":{"anyOf":[{"type":"null"},{"type":"number"}]},"parentStrategyId":{"anyOf":[{"type":"null"},{"type":"string"}]},"stress":{"$ref":"#/components/schemas/Response___type_401a2f9868ee"},"paper":{"$ref":"#/components/schemas/Response___type_fd46c154147e"},"live":{"$ref":"#/components/schemas/Response___type_a92408da454a"}},"additionalProperties":true,"required":["strategyRegistryId","strategyId","title","alias","strategyKey","strategyVariant","artifactId","artifactVersion","sourceRunId","publishedAt","updatedAt","lifecycleStatus","lifecycleReasonCode","overallStatus","entryMode","currentOutcome","forkDepth","parentStrategyRegistryId","parentStrategyId","stress","paper","live"]},"Response___type_401a2f9868ee":{"type":"object","properties":{"stressTestId":{"anyOf":[{"type":"null"},{"type":"number"}]},"status":{"enum":["running","error","failed","queued","not_started","waiting_resources","passed"]},"promotionSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"failedGateNames":{"type":"array","items":{"type":"string"}},"monteCarloStatus":{"enum":["failed","unavailable","not_started","passed","warning","skipped"]},"monteCarloPValue":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["stressTestId","status","promotionSharpe","failedGateNames","monteCarloStatus","monteCarloPValue"]},"Response___type_fd46c154147e":{"type":"object","properties":{"paperPeriodId":{"anyOf":[{"type":"null"},{"type":"number"}]},"status":{"enum":["running","blocked","failed","queued","promoted","withdrawn","not_started"]},"execution":{"$ref":"#/components/schemas/Response_PublishedStrategyPaperExecutionSnapshot_63d7ca4ffff5"},"outcome":{"anyOf":[{"type":"null"},{"type":"string","const":"failed"},{"type":"string","const":"promoted"},{"type":"string","const":"withdrawn"}]},"elapsedTradingDays":{"anyOf":[{"type":"null"},{"type":"number"}]},"requiredDays":{"anyOf":[{"type":"null"},{"type":"number"}]},"paperSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"requiredPaperSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"tradeCount":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["paperPeriodId","status","outcome","elapsedTradingDays","requiredDays","paperSharpe","requiredPaperSharpe","tradeCount"]},"Response_PublishedStrategyPaperExecutionSnapshot_63d7ca4ffff5":{"type":"object","properties":{"executionSource":{"anyOf":[{"type":"null"},{"type":"string","const":"broker_backed"},{"type":"string","const":"internal_simulation"}]},"brokerReadinessStatus":{"anyOf":[{"type":"null"},{"type":"string","const":"blocked"},{"type":"string","const":"ready"},{"type":"string","const":"queued"}]},"providerId":{"anyOf":[{"type":"null"},{"type":"string"}]},"connectMode":{"anyOf":[{"type":"null"},{"type":"string","const":"api_key"},{"type":"string","const":"oauth"}]},"brokerAccountId":{"anyOf":[{"type":"null"},{"type":"string"}]},"blockedReasonCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"readyAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"skippedActionCount":{"anyOf":[{"type":"null"},{"type":"number"}]},"skippedActionDays":{"type":"array","items":{"type":"string"}},"protection":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyPaperProtectionSnapshot_80f2f6465eb5"}]}},"additionalProperties":true,"required":["executionSource","brokerReadinessStatus","providerId","connectMode","brokerAccountId","blockedReasonCode","readyAt"]},"Response_PublishedStrategyPaperProtectionSnapshot_80f2f6465eb5":{"type":"object","properties":{"brokerBracketOpenPositions":{"type":"number"},"weaversManagedOpenPositions":{"type":"number"},"protectionDegradedOpenPositions":{"type":"number"}},"additionalProperties":true,"required":["brokerBracketOpenPositions","weaversManagedOpenPositions","protectionDegradedOpenPositions"]},"Response___type_a92408da454a":{"type":"object","properties":{"activeDeploymentCount":{"type":"number"}},"additionalProperties":true,"required":["activeDeploymentCount"]},"Response_OptimisationRunDetail_10fcc2eef334":{"type":"object","properties":{"run":{"$ref":"#/components/schemas/Response_Object_16a60f8e3d36"},"workers":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationWorker_03f7b273fd2b"}}},"additionalProperties":true,"required":["run","workers"]},"Response_Object_16a60f8e3d36":{"type":"object","properties":{"runId":{"type":"string"},"experimentName":{"anyOf":[{"type":"null"},{"type":"string"}]},"eurekaStrategyWorkspaceId":{"type":"string"},"candidate":{"$ref":"#/components/schemas/Response_OptimisationCandidate_0692cb2e6c8f"},"runNumber":{"anyOf":[{"type":"null"},{"type":"number"}]},"method":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationRunMethod_7511d364d9a7"}]},"experimentKey":{"type":"string","const":"tp_sl_two_stage"},"templateKey":{"type":"string","const":"tp_sl_two_stage_nsga2_v1"},"status":{"enum":["running","failed","cancelled","queued","completed","cancelling","provisioning","collecting"]},"visibility":{"enum":["private","community"]},"publishedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"cluster":{"type":"string","const":"dev"},"workerCount":{"type":"number"},"workersRunning":{"type":"number"},"workersSucceeded":{"type":"number"},"workersFailed":{"type":"number"},"workersPending":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"finishedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"cancelledAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"requestedByEmail":{"anyOf":[{"type":"null"},{"type":"string"}]},"ingestedRows":{"anyOf":[{"type":"null"},{"type":"number"}]},"rowProgress":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationRunRowProgress_f99966afd28e"}]},"submittedConfiguration":{"$ref":"#/components/schemas/Response_OptimisationCreateRequest_255ca9d85ae4"},"researchQuestion":{"anyOf":[{"type":"null"},{"type":"string"}]},"computeUsage":{"$ref":"#/components/schemas/Response_ExperimentComputeUsage_5e32c30fb4f2"},"publishedStrategyId":{"anyOf":[{"type":"null"},{"type":"string"}]},"latestPublishJob":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationStrategyPublishJob_6facff8a1454"}]},"publishPipeline":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationRunPublishPipelineInspection_4ad842f90517"}]},"parameters":{"$ref":"#/components/schemas/Response_TpSlTwoStageParameters_d91c9179ffd6"},"errorCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"errorMessage":{"anyOf":[{"type":"null"},{"type":"string"}]},"failureDiagnostic":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationRunFailureDiagnostic_b6e7334e4acd"}]},"summary":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"trajectories":{"$ref":"#/components/schemas/Response_OptimisationRunStageTrajectories_2c593def2e68"},"trajectory":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationStageBTrajectory_a4a6cf4dae44"}]},"analytics":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationRunAnalytics_1aa746d1e980"}]},"canEditVisibility":{"type":"boolean"}},"additionalProperties":true,"required":["runId","experimentKey","templateKey","status","visibility","publishedAt","cluster","workerCount","workersRunning","workersSucceeded","workersFailed","workersPending","createdAt","startedAt","finishedAt","cancelledAt","requestedByEmail","publishedStrategyId","latestPublishJob","publishPipeline","parameters","errorCode","errorMessage","failureDiagnostic","summary","trajectories","trajectory","analytics","canEditVisibility"]},"Response_ExperimentComputeUsage_5e32c30fb4f2":{"type":"object","properties":{"budget":{"$ref":"#/components/schemas/Response_ExperimentComputeBudget_f0e4616676a6"},"reservedTwigs":{"type":"number"},"chargedTwigs":{"anyOf":[{"type":"null"},{"type":"number"}]},"allocatedVcpuHours":{"type":"number"}},"additionalProperties":true,"required":["budget","reservedTwigs","chargedTwigs","allocatedVcpuHours"]},"Response_OptimisationStrategyPublishJob_6facff8a1454":{"type":"object","properties":{"jobId":{"type":"string"},"runId":{"type":"string"},"status":{"enum":["running","succeeded","failed","queued","awaiting_stress_test"]},"stressTestId":{"anyOf":[{"type":"null"},{"type":"number"}]},"stressTestStatus":{"anyOf":[{"type":"null"},{"type":"string","const":"running"},{"type":"string","const":"error"},{"type":"string","const":"failed"},{"type":"string","const":"queued"},{"type":"string","const":"waiting_resources"},{"type":"string","const":"passed"}]},"stressTestProgressStage":{"anyOf":[{"type":"null"},{"type":"string"}]},"stressTestProgressMessage":{"anyOf":[{"type":"null"},{"type":"string"}]},"stressTestProgressHeartbeatAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"request":{"$ref":"#/components/schemas/Response_OptimisationStrategyPublishJobRequest_64f9d54d3f2d"},"result":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationPublishedStrategy_e9ab7c96fd4d"}]},"errorCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"errorMessage":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"finishedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["jobId","runId","status","stressTestId","stressTestStatus","stressTestProgressStage","stressTestProgressMessage","stressTestProgressHeartbeatAt","request","result","errorCode","errorMessage","createdAt","updatedAt","startedAt","finishedAt"]},"Response_OptimisationStrategyPublishJobRequest_64f9d54d3f2d":{"type":"object","properties":{"displayName":{"type":"string"},"strategyKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"activateNow":{"type":"boolean"},"monteCarloExecutionMode":{"enum":["default","skip"]}},"additionalProperties":true,"required":["displayName","strategyKey","activateNow","monteCarloExecutionMode"]},"Response_OptimisationPublishedStrategy_e9ab7c96fd4d":{"type":"object","properties":{"strategyRegistryId":{"type":"number"},"strategyKey":{"type":"string"},"strategyVariant":{"type":"string"},"strategyId":{"type":"string"},"alias":{"type":"string"},"displayName":{"anyOf":[{"type":"null"},{"type":"string"}]},"artifactId":{"type":"number"},"publishedAt":{"type":"string"}},"additionalProperties":true,"required":["strategyRegistryId","strategyKey","strategyVariant","strategyId","alias","displayName","artifactId","publishedAt"]},"Response_OptimisationRunPublishPipelineInspection_4ad842f90517":{"type":"object","properties":{"fit":{"$ref":"#/components/schemas/Response___type_b4b57377b328"},"registry":{"$ref":"#/components/schemas/Response___type_acf20f3cbedb"},"stress":{"$ref":"#/components/schemas/Response___type_6c65fd586956"},"paper":{"$ref":"#/components/schemas/Response___type_f97ac72ff3c1"}},"additionalProperties":true,"required":["fit","registry","stress","paper"]},"Response___type_b4b57377b328":{"type":"object","properties":{"status":{"enum":["running","completed","not_started"]},"artifactId":{"anyOf":[{"type":"null"},{"type":"number"}]},"artifactVersion":{"anyOf":[{"type":"null"},{"type":"string"}]},"strategyKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"strategyVariant":{"anyOf":[{"type":"null"},{"type":"string"}]},"finalExecutionStage":{"anyOf":[{"type":"null"},{"type":"string","const":"stage_b"}]},"selectedStageATrialId":{"anyOf":[{"type":"null"},{"type":"number"}]},"selectedStageBTrialId":{"anyOf":[{"type":"null"},{"type":"number"}]},"selectedFinalExecutionTrialId":{"anyOf":[{"type":"null"},{"type":"number"}]},"selectedStageBInputTrialId":{"anyOf":[{"type":"null"},{"type":"number"}]},"requestedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"completedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["status","artifactId","artifactVersion","strategyKey","strategyVariant","finalExecutionStage","selectedStageATrialId","selectedStageBTrialId","selectedFinalExecutionTrialId","selectedStageBInputTrialId","requestedAt","completedAt"]},"Response___type_acf20f3cbedb":{"type":"object","properties":{"strategyRegistryId":{"anyOf":[{"type":"null"},{"type":"number"}]},"strategyId":{"anyOf":[{"type":"null"},{"type":"string"}]},"alias":{"anyOf":[{"type":"null"},{"type":"string"}]},"strategyKey":{"anyOf":[{"type":"null"},{"type":"string"}]},"strategyVariant":{"anyOf":[{"type":"null"},{"type":"string"}]},"nicheId":{"anyOf":[{"type":"null"},{"type":"number"}]},"nicheDisplayName":{"anyOf":[{"type":"null"},{"type":"string"}]},"universeFilterKey":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["strategyRegistryId","strategyId","alias","strategyKey","strategyVariant","nicheId","nicheDisplayName","universeFilterKey"]},"Response___type_6c65fd586956":{"type":"object","properties":{"stressTestId":{"anyOf":[{"type":"null"},{"type":"number"}]},"status":{"enum":["running","error","failed","queued","not_started","waiting_resources","passed"]},"progressStage":{"anyOf":[{"type":"null"},{"type":"string"}]},"progressMessage":{"anyOf":[{"type":"null"},{"type":"string"}]},"progressHeartbeatAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"completedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"errorMessage":{"anyOf":[{"type":"null"},{"type":"string"}]},"passedGateCount":{"type":"number"},"failedGateCount":{"type":"number"},"failedGateNames":{"type":"array","items":{"type":"string"}},"warningGateCount":{"type":"number"},"warningGateNames":{"type":"array","items":{"type":"string"}},"gates":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationStrategyStressGateInspection_69f2ba485849"}},"promotionSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"syntheticRegimeEquityChart":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyAuditLineChart_2896b31f572e"}]}},"additionalProperties":true,"required":["stressTestId","status","progressStage","progressMessage","progressHeartbeatAt","startedAt","completedAt","errorMessage","passedGateCount","failedGateCount","failedGateNames","warningGateCount","warningGateNames","promotionSharpe","syntheticRegimeEquityChart"]},"Response_OptimisationStrategyStressGateInspection_69f2ba485849":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"state":{"enum":["failed","unavailable","passed","warning"]},"blocking":{"type":"boolean"},"actual":{"anyOf":[{"type":"null"},{"type":"string"}]},"threshold":{"anyOf":[{"type":"null"},{"type":"string"}]},"detail":{"type":"string"}},"additionalProperties":true,"required":["key","label","state","blocking","actual","threshold","detail"]},"Response_PublishedStrategyAuditLineChart_2896b31f572e":{"type":"object","properties":{"kind":{"type":"string","const":"line"},"templateKey":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"yAxisLabel":{"type":"string"},"valueFormat":{"enum":["number","currency","percent"]},"series":{"type":"array","items":{"$ref":"#/components/schemas/Response_PublishedStrategyAuditSeries_0aa8a9a613d4"}},"emptyState":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["templateKey","title","description","yAxisLabel","valueFormat","series","emptyState"]},"Response_PublishedStrategyAuditSeries_0aa8a9a613d4":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"points":{"type":"array","items":{"$ref":"#/components/schemas/Response_PublishedStrategyAuditPoint_3e90e950e6b2"}}},"additionalProperties":true,"required":["key","label","points"]},"Response_PublishedStrategyAuditPoint_3e90e950e6b2":{"type":"object","properties":{"day":{"type":"string"},"value":{"type":"number"}},"additionalProperties":true,"required":["day","value"]},"Response___type_f97ac72ff3c1":{"type":"object","properties":{"status":{"enum":["blocked","failed","queued","active","promoted","withdrawn","not_started"]},"artifactLifecycleStatus":{"anyOf":[{"type":"null"},{"type":"string"}]},"artifactLifecycleReasonCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"executionSource":{"anyOf":[{"type":"null"},{"type":"string","const":"broker_backed"},{"type":"string","const":"internal_simulation"}]},"brokerReadinessStatus":{"anyOf":[{"type":"null"},{"type":"string","const":"blocked"},{"type":"string","const":"ready"},{"type":"string","const":"queued"}]},"brokerProviderId":{"anyOf":[{"type":"null"},{"type":"string"}]},"brokerConnectMode":{"anyOf":[{"type":"null"},{"type":"string","const":"api_key"},{"type":"string","const":"oauth"}]},"brokerAccountId":{"anyOf":[{"type":"null"},{"type":"string"}]},"brokerBlockedReasonCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"brokerBlockedReasonDetail":{"anyOf":[{"type":"null"},{"type":"string"}]},"brokerReadyAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"protection":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyPaperProtectionSnapshot_80f2f6465eb5"}]},"liveOrFailStatus":{"enum":["failed","live","pending"]},"paperPeriodId":{"anyOf":[{"type":"null"},{"type":"number"}]},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"endedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"requiredDays":{"anyOf":[{"type":"null"},{"type":"number"}]},"tradingDaysElapsed":{"anyOf":[{"type":"null"},{"type":"number"}]},"outcome":{"anyOf":[{"type":"null"},{"type":"string","const":"failed"},{"type":"string","const":"promoted"},{"type":"string","const":"withdrawn"}]},"paperSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"stressSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"requiredPaperSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"gatePassed":{"anyOf":[{"type":"null"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"gateName":{"anyOf":[{"type":"null"},{"type":"string"}]},"returnAggregation":{"anyOf":[{"type":"null"},{"type":"string"}]},"evaluatedTradingDays":{"anyOf":[{"type":"null"},{"type":"number"}]},"tradeCount":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["status","artifactLifecycleStatus","artifactLifecycleReasonCode","liveOrFailStatus","paperPeriodId","startedAt","endedAt","requiredDays","tradingDaysElapsed","outcome","paperSharpe","stressSharpe","requiredPaperSharpe","gatePassed","gateName","returnAggregation","evaluatedTradingDays","tradeCount"]},"Response_OptimisationRunFailureDiagnostic_b6e7334e4acd":{"type":"object","properties":{"version":{"type":"number","const":1},"code":{"type":"string"},"stage":{"enum":["configuration","dataset","signal_predictor","signal_refinement","execution_policy","infrastructure","unknown"]},"category":{"enum":["model","configuration","infrastructure","unknown","data_quality","feasibility"]},"reason":{"type":"string"},"retryable":{"type":"boolean"},"evidence":{"$ref":"#/components/schemas/Response_Record_e5023bc03283"},"adjustments":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationFailureAdjustment_afc9e043d962"}}},"additionalProperties":true,"required":["version","code","stage","category","reason","retryable","evidence","adjustments"]},"Response_Record_e5023bc03283":{"type":"object","properties":{},"additionalProperties":{"anyOf":[{"type":"null"},{"type":"string"},{"type":"number"},{"type":"boolean","const":false},{"type":"boolean","const":true}]}},"Response_OptimisationFailureAdjustment_afc9e043d962":{"type":"object","properties":{"parameterKey":{"type":"string"},"direction":{"enum":["increase","decrease","review"]},"priority":{"enum":["primary","alternative"]},"basis":{"$ref":"#/components/schemas/Response_LabelThresholdBasis_d50a83d058f5"}},"additionalProperties":true,"required":["parameterKey","direction","priority"]},"Response_LabelThresholdBasis_d50a83d058f5":{"type":"object","properties":{"kind":{"type":"string","const":"label_threshold_search"},"currentValue":{"type":"number"},"suggestedValue":{"anyOf":[{"type":"null"},{"type":"number"}]},"step":{"type":"number"},"maxValue":{"type":"number"},"minPositives":{"type":"number"},"minNegatives":{"type":"number"},"minPositiveRate":{"type":"number"},"maxPositiveRate":{"type":"number"},"windowsTotal":{"type":"number"},"windowsFailingBefore":{"type":"number"},"windowsFailingAfter":{"anyOf":[{"type":"null"},{"type":"number"}]},"windows":{"type":"array","items":{"$ref":"#/components/schemas/Response_LabelThresholdBasisWindow_f1c6db2fa1fc"}}},"additionalProperties":true,"required":["kind","currentValue","suggestedValue","step","maxValue","minPositives","minNegatives","minPositiveRate","maxPositiveRate","windowsTotal","windowsFailingBefore","windowsFailingAfter","windows"]},"Response_LabelThresholdBasisWindow_f1c6db2fa1fc":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"},"support":{"type":"number"},"upBefore":{"type":"number"},"upAfter":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["start","end","support","upBefore","upAfter"]},"Response_OptimisationRunStageTrajectories_2c593def2e68":{"type":"object","properties":{"stageA":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationStageATrajectory_784f9ce9ebe6"}]},"stageA2":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationStageATrajectory_784f9ce9ebe6"}]},"stageB":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationStageBTrajectory_a4a6cf4dae44"}]}},"additionalProperties":true,"required":["stageA","stageA2","stageB"]},"Response_OptimisationStageATrajectory_784f9ce9ebe6":{"type":"object","properties":{"studyName":{"type":"string"},"generatedAt":{"type":"string"},"points":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationStageATrajectoryPoint_b8f0ebfb4002"}},"series":{"$ref":"#/components/schemas/Response___type_132f94df039c"},"counts":{"$ref":"#/components/schemas/Response___type_fe1530c51f0d"}},"additionalProperties":true,"required":["studyName","generatedAt","points","series","counts"]},"Response_OptimisationStageATrajectoryPoint_b8f0ebfb4002":{"type":"object","properties":{"trialId":{"type":"number"},"prAuc":{"anyOf":[{"type":"null"},{"type":"number"}]},"logloss":{"anyOf":[{"type":"null"},{"type":"number"}]},"f1":{"anyOf":[{"type":"null"},{"type":"number"}]},"bestSoFarPrAuc":{"anyOf":[{"type":"null"},{"type":"number"}]},"bestSoFarLogloss":{"anyOf":[{"type":"null"},{"type":"number"}]},"bestSoFarF1":{"anyOf":[{"type":"null"},{"type":"number"}]},"backendUsed":{"anyOf":[{"type":"null"},{"type":"string"}]},"deviceUsed":{"anyOf":[{"type":"null"},{"type":"string"}]},"backendFallback":{"anyOf":[{"type":"null"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"timestampUtc":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["trialId","prAuc","logloss","f1","bestSoFarPrAuc","bestSoFarLogloss","bestSoFarF1","backendUsed","deviceUsed","backendFallback","timestampUtc"]},"Response___type_132f94df039c":{"type":"object","properties":{"bestSoFarPrAuc":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationTrajectorySeriesPoint_d456027c51fe"}},"bestSoFarLogloss":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationTrajectorySeriesPoint_d456027c51fe"}},"bestSoFarF1":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationTrajectorySeriesPoint_d456027c51fe"}}},"additionalProperties":true,"required":["bestSoFarPrAuc","bestSoFarLogloss","bestSoFarF1"]},"Response_OptimisationTrajectorySeriesPoint_d456027c51fe":{"type":"object","properties":{"trialId":{"type":"number"},"value":{"type":"number"}},"additionalProperties":true,"required":["trialId","value"]},"Response___type_fe1530c51f0d":{"type":"object","properties":{"totalPoints":{"type":"number"},"loglossPoints":{"type":"number"},"f1Points":{"type":"number"}},"additionalProperties":true,"required":["totalPoints","loglossPoints","f1Points"]},"Response_OptimisationStageBTrajectory_a4a6cf4dae44":{"type":"object","properties":{"studyName":{"type":"string"},"generatedAt":{"type":"string"},"points":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationStageBTrajectoryPoint_4699e9db7f55"}},"series":{"$ref":"#/components/schemas/Response___type_94170e0ac3e7"},"counts":{"$ref":"#/components/schemas/Response___type_d9fff8323234"}},"additionalProperties":true,"required":["studyName","generatedAt","points","series","counts"]},"Response_OptimisationStageBTrajectoryPoint_4699e9db7f55":{"type":"object","properties":{"constraintViolations":{"$ref":"#/components/schemas/Response_Record_eb5ac568d1fa"},"constraintMetrics":{"$ref":"#/components/schemas/Response_Record_eb5ac568d1fa"},"trialId":{"type":"number"},"objective1":{"type":"number"},"objective2":{"type":"number"},"feasible":{"type":"boolean"},"bestSoFarObjective1":{"type":"number"},"bestSoFarObjective2":{"type":"number"},"feasibleCountSoFar":{"type":"number"},"feasibleRatio":{"type":"number"},"timestampUtc":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["trialId","objective1","objective2","feasible","bestSoFarObjective1","bestSoFarObjective2","feasibleCountSoFar","feasibleRatio","timestampUtc"]},"Response_Record_eb5ac568d1fa":{"type":"object","properties":{},"additionalProperties":{"anyOf":[{"type":"null"},{"type":"number"}]}},"Response___type_94170e0ac3e7":{"type":"object","properties":{"bestSoFarObjective1":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationTrajectorySeriesPoint_d456027c51fe"}},"bestSoFarObjective2":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationTrajectorySeriesPoint_d456027c51fe"}},"feasibleRatio":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationTrajectorySeriesPoint_d456027c51fe"}}},"additionalProperties":true,"required":["bestSoFarObjective1","bestSoFarObjective2","feasibleRatio"]},"Response___type_d9fff8323234":{"type":"object","properties":{"totalPoints":{"type":"number"},"feasiblePoints":{"type":"number"},"infeasiblePoints":{"type":"number"}},"additionalProperties":true,"required":["totalPoints","feasiblePoints","infeasiblePoints"]},"Response_OptimisationRunAnalytics_1aa746d1e980":{"type":"object","properties":{"sourceWorkerKey":{"type":"string"},"winnerTrialId":{"type":"number"},"winnerObjective1":{"type":"number"},"winnerObjective2":{"type":"number"},"winnerFeasible":{"type":"boolean"},"winner":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"holdout":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"paretoFrontier":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationParetoPoint_7acfa05bc871"}},"holdoutEquityCurve":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationHoldoutEquityPoint_da316d772fe4"}},"stageACalibration":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationStageACalibration_a7b3d4454e66"}]},"equityOverlay":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_OptimisationEquityOverlay_1aa5ed08d365"}]},"holdoutTradeCount":{"type":"number"},"validationTradeCount":{"type":"number"},"holdoutLeverage":{"$ref":"#/components/schemas/Response_OptimisationLeverageEvidence_9a942f5a3cf9"},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["sourceWorkerKey","winnerTrialId","winnerObjective1","winnerObjective2","winnerFeasible","winner","holdout","paretoFrontier","holdoutEquityCurve","stageACalibration","equityOverlay","holdoutTradeCount","updatedAt"]},"Response_OptimisationParetoPoint_7acfa05bc871":{"type":"object","properties":{"trialId":{"type":"number"},"objective1":{"type":"number"},"objective2":{"type":"number"},"feasible":{"type":"boolean"},"isWinner":{"type":"boolean"}},"additionalProperties":true,"required":["trialId","objective1","objective2","feasible","isWinner"]},"Response_OptimisationHoldoutEquityPoint_da316d772fe4":{"type":"object","properties":{"day":{"type":"string"},"equity":{"type":"number"},"drawdown":{"type":"number"}},"additionalProperties":true,"required":["day","equity","drawdown"]},"Response_OptimisationStageACalibration_a7b3d4454e66":{"type":"object","properties":{"brier":{"anyOf":[{"type":"null"},{"type":"number"}]},"ece":{"anyOf":[{"type":"null"},{"type":"number"}]},"bins":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationStageACalibrationBin_08276c54ef08"}}},"additionalProperties":true,"required":["brier","ece","bins"]},"Response_OptimisationStageACalibrationBin_08276c54ef08":{"type":"object","properties":{"pMean":{"type":"number"},"yRate":{"type":"number"},"count":{"type":"number"}},"additionalProperties":true,"required":["pMean","yRate","count"]},"Response_OptimisationEquityOverlay_1aa5ed08d365":{"type":"object","properties":{"validation":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationHoldoutEquityPoint_da316d772fe4"}},"holdout":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationHoldoutEquityPoint_da316d772fe4"}}},"additionalProperties":true,"required":["validation","holdout"]},"Response_OptimisationLeverageEvidence_9a942f5a3cf9":{"type":"object","properties":{"tradeCount":{"type":"number"},"observedTradeCount":{"type":"number"},"minMultiplier":{"anyOf":[{"type":"null"},{"type":"number"}]},"maxMultiplier":{"anyOf":[{"type":"null"},{"type":"number"}]},"borrowedTradeCount":{"type":"number"},"borrowingObservedTradeCount":{"type":"number"},"maxBorrowedNotional":{"anyOf":[{"type":"null"},{"type":"number"}]},"marginInterestTotal":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["tradeCount","observedTradeCount","minMultiplier","maxMultiplier","borrowedTradeCount","borrowingObservedTradeCount","maxBorrowedNotional","marginInterestTotal"]},"Response_OptimisationWorker_03f7b273fd2b":{"type":"object","properties":{"workerKey":{"type":"string"},"attempt":{"type":"number"},"status":{"enum":["running","succeeded","failed","cancelled","pending","provisioning"]},"k8sJobName":{"anyOf":[{"type":"null"},{"type":"string"}]},"k8sPodName":{"anyOf":[{"type":"null"},{"type":"string"}]},"phaseReason":{"anyOf":[{"type":"null"},{"type":"string"}]},"exitCode":{"anyOf":[{"type":"null"},{"type":"number"}]},"logTail":{"anyOf":[{"type":"null"},{"type":"string"}]},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"finishedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["workerKey","attempt","status","k8sJobName","k8sPodName","phaseReason","exitCode","logTail","startedAt","finishedAt","updatedAt"]},"Response___object_d0810bb41a26":{"type":"object","properties":{"certification":{"$ref":"#/components/schemas/Response_EurekaStrategyCertificationDetail_6aa49a43c066"}},"additionalProperties":true,"required":["certification"]},"Response_EurekaStrategyCertificationDetail_6aa49a43c066":{"type":"object","properties":{"runId":{"type":"string"},"strategyId":{"anyOf":[{"type":"null"},{"type":"string"}]},"audit":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyAuditDashboard_7374fb644c20"}]},"nicheMap":{"type":"array","items":{"$ref":"#/components/schemas/Response_PublishedStrategyNicheMapItem_dd3b295a63e0"}},"paperRuntime":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyPaperRuntime_18fdf55e1a59"}]}},"additionalProperties":true,"required":["runId","strategyId","audit","nicheMap","paperRuntime"]},"Response_PublishedStrategyAuditDashboard_7374fb644c20":{"type":"object","properties":{"benchmarkSymbol":{"anyOf":[{"type":"null"},{"type":"string"}]},"charts":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/Response_PublishedStrategyAuditLineChart_2896b31f572e"},{"$ref":"#/components/schemas/Response_PublishedStrategyAuditHistogramChart_f6df6c0544c5"}]}},"publishGates":{"type":"array","items":{"$ref":"#/components/schemas/Response_PublishedStrategyPublishGate_1d7df861d387"}}},"additionalProperties":true,"required":["benchmarkSymbol","charts","publishGates"]},"Response_PublishedStrategyAuditHistogramChart_f6df6c0544c5":{"type":"object","properties":{"kind":{"type":"string","const":"histogram"},"templateKey":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"xAxisLabel":{"type":"string"},"yAxisLabel":{"type":"string"},"valueFormat":{"enum":["number","currency","percent"]},"bins":{"type":"array","items":{"$ref":"#/components/schemas/Response_PublishedStrategyAuditHistogramBin_1df5c1f7f322"}},"markers":{"type":"array","items":{"$ref":"#/components/schemas/Response_PublishedStrategyAuditMarker_5dc5b54ff02c"}},"emptyState":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["kind","templateKey","title","description","xAxisLabel","yAxisLabel","valueFormat","bins","markers","emptyState"]},"Response_PublishedStrategyAuditHistogramBin_1df5c1f7f322":{"type":"object","properties":{"key":{"type":"string"},"start":{"type":"number"},"end":{"type":"number"},"count":{"type":"number"}},"additionalProperties":true,"required":["key","start","end","count"]},"Response_PublishedStrategyAuditMarker_5dc5b54ff02c":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"value":{"type":"number"}},"additionalProperties":true,"required":["key","label","value"]},"Response_PublishedStrategyPublishGate_1d7df861d387":{"type":"object","properties":{"gateKey":{"type":"string"},"title":{"type":"string"},"status":{"enum":["unavailable","pass","warn","fail"]},"actualLabel":{"type":"string"},"thresholdLabel":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true,"required":["gateKey","title","status","actualLabel","thresholdLabel","detail"]},"Response_PublishedStrategyPaperRuntime_18fdf55e1a59":{"type":"object","properties":{"period":{"$ref":"#/components/schemas/Response_PublishedStrategyPaperPeriodSnapshot_ad5c7e4471e6"},"autoExecution":{"$ref":"#/components/schemas/Response_PublishedStrategyAutoExecutionControl_a3a74466e940"},"costSummary":{"$ref":"#/components/schemas/Response_PublishedStrategyPaperRuntimeCostSummary_fe795300a076"}},"additionalProperties":true,"required":["period","autoExecution","costSummary"]},"Response_PublishedStrategyPaperPeriodSnapshot_ad5c7e4471e6":{"type":"object","properties":{"status":{"enum":["running","blocked","failed","queued","promoted","withdrawn","not_started"]},"capacity":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PaperCapacityState_659821368335"}]},"outcome":{"anyOf":[{"type":"null"},{"type":"string","const":"failed"},{"type":"string","const":"promoted"},{"type":"string","const":"withdrawn"}]},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"endedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"requiredDays":{"type":"number"},"elapsedTradingDays":{"type":"number"},"promotionReadiness":{"$ref":"#/components/schemas/Response_PublishedStrategyPromotionReadiness_d4c084f1916d"}},"additionalProperties":true,"required":["status","outcome","startedAt","endedAt","requiredDays","elapsedTradingDays","promotionReadiness"]},"Response_PaperCapacityState_659821368335":{"type":"object","properties":{"title":{"type":"string"},"explanation":{"type":"string"},"whatHappensNext":{"type":"string"},"reasonCode":{"enum":["paper_capacity_global_full","paper_capacity_niche_full","paper_capacity_owner_full","platform_paper_capacity_exhausted","platform_paper_buying_power_exhausted"]},"queuePosition":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["title","explanation","whatHappensNext","reasonCode","queuePosition"]},"Response_PublishedStrategyPromotionReadiness_d4c084f1916d":{"type":"object","properties":{"status":{"enum":["failed","ready","passed","not_ready","not_applicable"]},"reason":{"type":"string"},"elapsedTradingDays":{"type":"number"},"requiredTradingDays":{"type":"number"},"progressRatio":{"type":"number"},"paperSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"stressSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"requiredPaperSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["status","reason","elapsedTradingDays","requiredTradingDays","progressRatio","paperSharpe","stressSharpe","requiredPaperSharpe"]},"Response_PublishedStrategyAutoExecutionControl_a3a74466e940":{"type":"object","properties":{"scope":{"type":"string","const":"paper"},"state":{"enum":["active","paused","killed"]},"pauseUntil":{"anyOf":[{"type":"null"},{"type":"string"}]},"reason":{"anyOf":[{"type":"null"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["scope","state","pauseUntil","reason","updatedAt"]},"Response_PublishedStrategyPaperRuntimeCostSummary_fe795300a076":{"type":"object","properties":{"closedTrades":{"type":"number"},"executionCost":{"type":"number"},"marketFeeCost":{"type":"number"},"marginInterestCost":{"type":"number"},"totalCost":{"type":"number"},"realizedPnl":{"type":"number"},"currentMarginDebit":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["closedTrades","executionCost","marketFeeCost","marginInterestCost","totalCost","realizedPnl","currentMarginDebit"]},"Response_EurekaPaperActivity_8a670f9e38af":{"type":"object","properties":{"paperPeriodId":{"type":"number"},"evidence":{"$ref":"#/components/schemas/Response_EurekaPaperEvidence_02897a23e9a2"},"summary":{"$ref":"#/components/schemas/Response_EurekaPaperActivitySummary_364862d8bf39"},"positions":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaPaperActivityPosition_367488df5dba"}},"orderIntents":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaPaperActivityOrderIntent_c3205a54d92c"}},"fills":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaPaperActivityFill_a4638a90e41b"}},"skippedActions":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaPaperSkippedAction_5448faecbabb"}},"anomalies":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaPaperExecutionAnomaly_cb7fd7f16ca7"}},"limit":{"type":"number"},"truncated":{"$ref":"#/components/schemas/Response_EurekaPaperActivityTruncation_9c94bb22d900"}},"additionalProperties":true,"required":["paperPeriodId","summary","positions","orderIntents","fills","skippedActions","anomalies","limit","truncated"]},"Response_EurekaPaperEvidence_02897a23e9a2":{"type":"object","properties":{"retrievedAt":{"type":"string"},"period":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_993c68fa154d"}]},"performance":{"$ref":"#/components/schemas/Response___type_d8da80308b52"}},"additionalProperties":true,"required":["retrievedAt","period","performance"]},"Response___type_993c68fa154d":{"type":"object","properties":{"startedAt":{"type":"string"},"endedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"allocatedCapital":{"anyOf":[{"type":"null"},{"type":"number"}]},"providerId":{"anyOf":[{"type":"null"},{"type":"string"}]},"executionSource":{"anyOf":[{"type":"null"},{"type":"string"}]},"executionState":{"enum":["blocked","queued","ended","paused","killed","enabled","unverified"]},"executionCheckedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"pauseUntil":{"anyOf":[{"type":"null"},{"type":"string"}]},"executionReason":{"anyOf":[{"type":"null"},{"type":"string"}]},"queuePosition":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["startedAt","endedAt","allocatedCapital","providerId","executionSource","executionState","executionCheckedAt","pauseUntil","executionReason"]},"Response___type_d8da80308b52":{"type":"object","properties":{"status":{"enum":["available","unavailable","mismatch"]},"reason":{"anyOf":[{"type":"null"},{"type":"string"}]},"snapshots":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaPaperValuation_e013d20641d4"}}},"additionalProperties":true,"required":["status","reason","snapshots"]},"Response_EurekaPaperValuation_e013d20641d4":{"type":"object","properties":{"day":{"type":"string"},"cash":{"type":"number"},"equity":{"type":"number"},"realizedPnl":{"type":"number"},"unrealizedPnl":{"type":"number"},"recordedAt":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true,"required":["day","cash","equity","realizedPnl","unrealizedPnl","recordedAt","source"]},"Response_EurekaPaperActivitySummary_364862d8bf39":{"type":"object","properties":{"openPositions":{"type":"number"},"closedPositions":{"type":"number"},"pendingOrders":{"type":"number"},"failedOrders":{"type":"number"},"skippedActions":{"type":"number"},"openAnomalies":{"type":"number"},"realizedPnl":{"type":"number"},"openEntryNotional":{"type":"number"},"lastActivityAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["openPositions","closedPositions","pendingOrders","failedOrders","skippedActions","openAnomalies","realizedPnl","openEntryNotional","lastActivityAt"]},"Response_EurekaPaperActivityPosition_367488df5dba":{"type":"object","properties":{"id":{"type":"number"},"strategyTradeSignalId":{"anyOf":[{"type":"null"},{"type":"number"}]},"symbol":{"type":"string"},"side":{"type":"string"},"status":{"type":"string"},"qty":{"type":"number"},"entryPrice":{"anyOf":[{"type":"null"},{"type":"number"}]},"entryReferencePrice":{"anyOf":[{"type":"null"},{"type":"number"}]},"entryNotional":{"anyOf":[{"type":"null"},{"type":"number"}]},"stopLossPrice":{"anyOf":[{"type":"null"},{"type":"number"}]},"takeProfitPrice":{"anyOf":[{"type":"null"},{"type":"number"}]},"openedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"openedDay":{"anyOf":[{"type":"null"},{"type":"string"}]},"exitPrice":{"anyOf":[{"type":"null"},{"type":"number"}]},"exitReason":{"anyOf":[{"type":"null"},{"type":"string"}]},"realizedPnl":{"anyOf":[{"type":"null"},{"type":"number"}]},"closedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"closedDay":{"anyOf":[{"type":"null"},{"type":"string"}]},"protectionMode":{"anyOf":[{"type":"null"},{"type":"string","const":"broker_bracket"},{"type":"string","const":"weavers_managed"}]},"protectionStatus":{"anyOf":[{"type":"null"},{"type":"string","const":"weavers_managed"},{"type":"string","const":"broker_protected"},{"type":"string","const":"protection_degraded"},{"type":"string","const":"closed"}]},"entryClientOrderId":{"anyOf":[{"type":"null"},{"type":"string"}]},"entryBrokerOrderId":{"anyOf":[{"type":"null"},{"type":"string"}]},"exitClientOrderId":{"anyOf":[{"type":"null"},{"type":"string"}]},"exitBrokerOrderId":{"anyOf":[{"type":"null"},{"type":"string"}]},"signal":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EurekaPaperActivitySignalContext_d84241d64e32"}]}},"additionalProperties":true,"required":["id","strategyTradeSignalId","symbol","side","status","qty","entryPrice","entryReferencePrice","entryNotional","stopLossPrice","takeProfitPrice","openedAt","openedDay","exitPrice","exitReason","realizedPnl","closedAt","closedDay","protectionMode","protectionStatus","entryClientOrderId","entryBrokerOrderId","exitClientOrderId","exitBrokerOrderId","signal"]},"Response_EurekaPaperActivitySignalContext_d84241d64e32":{"type":"object","properties":{"signalId":{"anyOf":[{"type":"null"},{"type":"number"}]},"tradingDay":{"anyOf":[{"type":"null"},{"type":"string"}]},"entryDay":{"anyOf":[{"type":"null"},{"type":"string"}]},"entryAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"executionTimeframe":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["signalId","tradingDay","entryDay","entryAt","executionTimeframe"]},"Response_EurekaPaperActivityOrderIntent_c3205a54d92c":{"type":"object","properties":{"id":{"type":"number"},"strategyTradeSignalId":{"anyOf":[{"type":"null"},{"type":"number"}]},"orderRole":{"type":"string"},"orderClass":{"type":"string"},"symbol":{"type":"string"},"side":{"type":"string"},"qty":{"type":"number"},"notional":{"anyOf":[{"type":"null"},{"type":"number"}]},"timeInForce":{"type":"string"},"takeProfitLimitPrice":{"anyOf":[{"type":"null"},{"type":"number"}]},"stopLossStopPrice":{"anyOf":[{"type":"null"},{"type":"number"}]},"clientOrderId":{"type":"string"},"brokerOrderId":{"anyOf":[{"type":"null"},{"type":"string"}]},"status":{"type":"string"},"statusReason":{"anyOf":[{"type":"null"},{"type":"string"}]},"attemptCount":{"type":"number"},"lastAttemptAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"submittedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"signal":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EurekaPaperActivitySignalContext_d84241d64e32"}]},"brokerOrders":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaPaperActivityBrokerOrder_8f1b01ba6738"}}},"additionalProperties":true,"required":["id","strategyTradeSignalId","orderRole","orderClass","symbol","side","qty","notional","timeInForce","takeProfitLimitPrice","stopLossStopPrice","clientOrderId","brokerOrderId","status","statusReason","attemptCount","lastAttemptAt","submittedAt","createdAt","updatedAt","signal","brokerOrders"]},"Response_EurekaPaperActivityBrokerOrder_8f1b01ba6738":{"type":"object","properties":{"id":{"type":"number"},"paperOrderIntentId":{"type":"number"},"brokerOrderId":{"type":"string"},"clientOrderId":{"anyOf":[{"type":"null"},{"type":"string"}]},"parentBrokerOrderId":{"anyOf":[{"type":"null"},{"type":"string"}]},"orderLegRole":{"type":"string"},"symbol":{"type":"string"},"side":{"type":"string"},"qty":{"type":"number"},"status":{"type":"string"},"filledQty":{"type":"number"},"filledAvgPrice":{"anyOf":[{"type":"null"},{"type":"number"}]},"submittedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["id","paperOrderIntentId","brokerOrderId","clientOrderId","parentBrokerOrderId","orderLegRole","symbol","side","qty","status","filledQty","filledAvgPrice","submittedAt","createdAt","updatedAt"]},"Response_EurekaPaperActivityFill_a4638a90e41b":{"type":"object","properties":{"id":{"type":"number"},"paperOrderIntentId":{"type":"number"},"brokerOrderId":{"type":"string"},"clientOrderId":{"anyOf":[{"type":"null"},{"type":"string"}]},"brokerFillId":{"type":"string"},"orderLegRole":{"type":"string"},"symbol":{"type":"string"},"side":{"type":"string"},"qty":{"type":"number"},"price":{"type":"number"},"grossAmount":{"anyOf":[{"type":"null"},{"type":"number"}]},"cumulativeQty":{"anyOf":[{"type":"null"},{"type":"number"}]},"leavesQty":{"anyOf":[{"type":"null"},{"type":"number"}]},"transactionTime":{"type":"string"},"createdAt":{"type":"string"},"signal":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EurekaPaperActivitySignalContext_d84241d64e32"}]}},"additionalProperties":true,"required":["id","paperOrderIntentId","brokerOrderId","clientOrderId","brokerFillId","orderLegRole","symbol","side","qty","price","grossAmount","cumulativeQty","leavesQty","transactionTime","createdAt","signal"]},"Response_EurekaPaperSkippedAction_5448faecbabb":{"type":"object","properties":{"id":{"type":"number"},"strategyTradeSignalId":{"anyOf":[{"type":"null"},{"type":"number"}]},"actionDay":{"type":"string"},"actionType":{"type":"string"},"reasonCode":{"type":"string"},"reasonDetail":{"anyOf":[{"type":"null"},{"type":"string"}]},"symbol":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"},"signal":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EurekaPaperActivitySignalContext_d84241d64e32"}]}},"additionalProperties":true,"required":["id","strategyTradeSignalId","actionDay","actionType","reasonCode","reasonDetail","symbol","createdAt","signal"]},"Response_EurekaPaperExecutionAnomaly_cb7fd7f16ca7":{"type":"object","properties":{"id":{"type":"number"},"severity":{"type":"string"},"anomalyCode":{"type":"string"},"entityType":{"type":"string"},"entityId":{"anyOf":[{"type":"null"},{"type":"string"}]},"status":{"type":"string"},"firstSeenAt":{"type":"string"},"lastSeenAt":{"type":"string"},"resolvedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"occurrenceCount":{"type":"number"}},"additionalProperties":true,"required":["id","severity","anomalyCode","entityType","entityId","status","firstSeenAt","lastSeenAt","resolvedAt","occurrenceCount"]},"Response_EurekaPaperActivityTruncation_9c94bb22d900":{"type":"object","properties":{"positions":{"type":"boolean"},"orderIntents":{"type":"boolean"},"fills":{"type":"boolean"},"skippedActions":{"type":"boolean"},"anomalies":{"type":"boolean"}},"additionalProperties":true,"required":["positions","orderIntents","fills","skippedActions","anomalies"]},"Response___object_2f4f3fbd4890":{"type":"object","properties":{"runId":{"type":"string"},"strategyId":{"type":"string"},"autoExecution":{"$ref":"#/components/schemas/Response_PublishedStrategyAutoExecutionControl_a3a74466e940"}},"additionalProperties":true,"required":["runId","strategyId","autoExecution"]},"Response_OptimisationRunHoldoutTradesResponse_73c3fa57aff4":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationHoldoutTrade_b76b3dce62b9"}},"nextCursor":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["items","nextCursor"]},"Response_OptimisationHoldoutTrade_b76b3dce62b9":{"type":"object","properties":{"rowIndex":{"type":"number"},"sourceWorkerKey":{"type":"string"},"trade":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["rowIndex","sourceWorkerKey","trade"]},"Response_OptimisationRunHoldoutPriceActionResponse_7ed59bedc7cd":{"type":"object","properties":{"symbol":{"type":"string"},"startDay":{"type":"string"},"endDay":{"type":"string"},"candles":{"type":"array","items":{"$ref":"#/components/schemas/Response_OptimisationHoldoutPriceActionCandle_1e65474ac4f3"}},"indicatorHistory":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_203b0a5c8e70"}}},"additionalProperties":true,"required":["symbol","startDay","endDay","candles"]},"Response_OptimisationHoldoutPriceActionCandle_1e65474ac4f3":{"type":"object","properties":{"day":{"type":"string"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"}},"additionalProperties":true,"required":["day","open","high","low","close"]},"Response___type_203b0a5c8e70":{"type":"object","properties":{"day":{"type":"string"},"close":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["day","close"]},"Response_ValidationAttempt_02e800697e2a":{"type":"object","properties":{"id":{"type":"string"},"runId":{"type":"string"},"versionId":{"type":"string"},"createdAt":{"type":"string"},"status":{"enum":["blocked","unavailable","checks_passed"]},"checks":{"type":"array","items":{"$ref":"#/components/schemas/Response_ValidationCheck_0aafa8358a48"}},"evidence":{"$ref":"#/components/schemas/Response___type_fe6c71c2a3d2"},"revisions":{"type":"array","items":{"$ref":"#/components/schemas/Response_ValidationRevisionSummary_8b9361f8eb08"}},"explanationAvailable":{"enum":[false,true]},"explanation":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response___type_bcd23cf4606e"}]},"decisions":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_6e2cffe28549"}}},"additionalProperties":true,"required":["id","runId","versionId","createdAt","status","checks","evidence","explanation","decisions"]},"Response_ValidationCheck_0aafa8358a48":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"state":{"enum":["failed","unavailable","passed","not_run"]},"actual":{"type":"number"},"required":{"type":"number"},"comparator":{"enum":["at_least","at_most"]},"unit":{"enum":["number","ratio"]},"benchmark":{"type":"number"},"benchmarkSymbol":{"type":"string"}},"additionalProperties":true,"required":["id","label","state"]},"Response___type_fe6c71c2a3d2":{"type":"object","properties":{"winnerTrial":{"anyOf":[{"type":"null"},{"type":"number"}]},"dataProvider":{"type":"string"},"startDay":{"anyOf":[{"type":"null"},{"type":"string"}]},"endDay":{"anyOf":[{"type":"null"},{"type":"string"}]},"tradeCount":{"anyOf":[{"type":"null"},{"type":"number"}]},"parameters":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"winner":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"holdoutEquityCurve":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_e24faccb0beb"}},"holdout":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"missing":{"type":"array","items":{"type":"string"}}},"additionalProperties":true,"required":["winnerTrial","dataProvider","startDay","endDay","tradeCount","parameters","winner","holdoutEquityCurve","holdout","missing"]},"Response___type_e24faccb0beb":{"type":"object","properties":{"day":{"type":"string"},"equity":{"type":"number"},"drawdown":{"type":"number"}},"additionalProperties":true,"required":["day","equity","drawdown"]},"Response_ValidationRevisionSummary_8b9361f8eb08":{"type":"object","properties":{"id":{"type":"string"},"runId":{"type":"string"},"reason":{"type":"string"},"createdAt":{"type":"string"},"attemptId":{"type":"string"},"sourceVersionId":{"type":"string"},"revisionNumber":{"type":"number"},"parentRevisionId":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["id","runId","reason","createdAt","attemptId","sourceVersionId","revisionNumber","parentRevisionId"]},"Response___type_bcd23cf4606e":{"type":"object","properties":{"text":{"type":"string"},"model":{"type":"string"},"generatedAt":{"type":"string"}},"additionalProperties":true,"required":["text","model","generatedAt"]},"Response___type_6e2cffe28549":{"type":"object","properties":{"decision":{"enum":["reject","investigate","revise","observe"]},"reason":{"type":"string"},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["decision","reason","createdAt"]},"Response_ValidationRevision_44c9f8e33fdf":{"type":"object","properties":{"id":{"type":"string"},"attemptId":{"type":"string"},"runId":{"type":"string"},"sourceVersionId":{"type":"string"},"revisionNumber":{"type":"number"},"parentRevisionId":{"anyOf":[{"type":"null"},{"type":"string"}]},"reason":{"type":"string"},"request":{"$ref":"#/components/schemas/Response_OptimisationCreateRequest_255ca9d85ae4"},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["id","attemptId","runId","sourceVersionId","revisionNumber","parentRevisionId","reason","request","createdAt"]},"Response_OptimisationEntryFilterDecisionsResponse_f8153b0e563a":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_5e202d19b3dd"}},"nextCursor":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["items","nextCursor"]},"Response___type_5e202d19b3dd":{"type":"object","properties":{"rowIndex":{"type":"number"},"decision":{"$ref":"#/components/schemas/Response_EntryFilterDecision_6279a2acf451"}},"additionalProperties":true,"required":["rowIndex","decision"]},"Response_EntryFilterDecision_6279a2acf451":{"type":"object","properties":{"symbol":{"type":"string"},"signalDay":{"type":"string"},"candleDay":{"type":"string"},"state":{"enum":["blocked","unavailable","passed"]},"evaluatorVersion":{"type":"string","const":"entry-filters-v1"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/Response___type_1c9f13ce2473"}}},"additionalProperties":true,"required":["symbol","signalDay","state","evaluatorVersion","conditions"]},"Response___type_1c9f13ce2473":{"type":"object","properties":{"left":{"type":"string"},"operator":{"type":"string"},"right":{"type":"string"},"leftValue":{"anyOf":[{"type":"null"},{"type":"number"}]},"rightValue":{"anyOf":[{"type":"null"},{"type":"number"}]},"previousLeftValue":{"anyOf":[{"type":"null"},{"type":"number"}]},"previousRightValue":{"anyOf":[{"type":"null"},{"type":"number"}]},"passed":{"anyOf":[{"type":"null"},{"type":"boolean","const":false},{"type":"boolean","const":true}]}},"additionalProperties":true,"required":["left","operator","right","leftValue","rightValue","passed"]},"Response___object_af4413ad4ae4":{"type":"object","properties":{"premium":{"$ref":"#/components/schemas/Response_PremiumSubscriptionSnapshot_db7b7c518c10"},"sandboxEnabled":{"type":"boolean"}},"additionalProperties":true,"required":["premium","sandboxEnabled"]},"Response___object_eeab616767e9":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Input_ProductFeedbackContext_ec94d77dd41b":{"type":"object","properties":{"surface":{"type":"string"},"pathname":{"type":"string"}},"additionalProperties":false,"required":["surface","pathname"]},"Response_ProductFeedbackReceipt_cc2791ececc9":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","const":"received"},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["id","status","createdAt"]},"Response___object_8f661228d542":{"type":"object","properties":{"code":{"type":"string"},"error":{"type":"string"}},"additionalProperties":true,"required":["code","error"]},"Response___object_0dd57c815f0a":{"type":"object","properties":{"code":{"enum":["feedback_key_reused","feedback_rate_limited"]},"error":{"type":"string"}},"additionalProperties":true,"required":["code","error"]},"Response___object_6da51495085e":{"type":"object","properties":{"profile":{"$ref":"#/components/schemas/Response___object_7c1835d35206"}},"additionalProperties":true,"required":["profile"]},"Response___object_7c1835d35206":{"type":"object","properties":{"updatedAt":{"description":"JSON value whose shape is determined by the resource or provider."},"feedState":{"$ref":"#/components/schemas/Response___type_c0bfeb1f2aeb"},"filters":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"workspaceState":{"$ref":"#/components/schemas/Response___type_4386407ec1bb"}},"additionalProperties":true,"required":["updatedAt","feedState","filters","workspaceState"]},"Response___type_c0bfeb1f2aeb":{"type":"object","properties":{"selectedTag":{"type":"string"}},"additionalProperties":true,"required":["selectedTag"]},"Response___type_4386407ec1bb":{"type":"object","properties":{"backtestDrafts":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"backtestResults":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["backtestDrafts","backtestResults"]},"Response___object_147c5165132d":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_691353e58a83":{"type":"object","properties":{"profile":{"$ref":"#/components/schemas/Response___object_10597983040f"}},"additionalProperties":true,"required":["profile"]},"Response___object_10597983040f":{"type":"object","properties":{"updatedAt":{"type":"string"},"feedState":{"$ref":"#/components/schemas/Response___type_c0bfeb1f2aeb"},"filters":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"},"workspaceState":{"$ref":"#/components/schemas/Response___type_4386407ec1bb"}},"additionalProperties":true,"required":["updatedAt","feedState","filters","workspaceState"]},"Input_RuleEnvelope_a38457de4853":{"type":"object","properties":{"spec":{"$ref":"#/components/schemas/Input_RuleSpec_f77279a3c5de"},"sizing":{"$ref":"#/components/schemas/Input_RuleSizing_3c36a2c51ade"},"dataset":{"anyOf":[{"$ref":"#/components/schemas/Input_ResearchNicheDataset_f93ac9272c9f"},{"$ref":"#/components/schemas/Input_Object_ad746b5e0c2c"}]}},"additionalProperties":false,"required":["spec","sizing","dataset"]},"Input_RuleSpec_f77279a3c5de":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"type":{"type":"string","const":"rule"},"side":{"type":"string","const":"long"},"bar":{"type":"string","const":"1d"},"entry":{"anyOf":[{"$ref":"#/components/schemas/Input_RulePredicate_2b59e6f8a0c5"},{"$ref":"#/components/schemas/Input___type_4f173a53efd3"}]},"exit":{"anyOf":[{"$ref":"#/components/schemas/Input_RulePredicate_2b59e6f8a0c5"},{"$ref":"#/components/schemas/Input___type_4f173a53efd3"}]},"stop_loss_pct":{"anyOf":[{"type":"null"},{"type":"number"}]},"take_profit_pct":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":false,"required":["schema_version","type","side","bar","entry","exit","stop_loss_pct","take_profit_pct"]},"Input_RuleSizing_3c36a2c51ade":{"type":"object","properties":{"mode":{"type":"string","const":"equal_notional"},"position_pct":{"type":"number"},"max_gross_pct":{"type":"number"},"simultaneous":{"type":"string","const":"proportional"},"pyramiding":{"type":"boolean","const":false},"borrowing":{"type":"boolean","const":false}},"additionalProperties":false,"required":["mode","position_pct","max_gross_pct","simultaneous","pyramiding","borrowing"]},"Input_ResearchNicheDataset_f93ac9272c9f":{"type":"object","properties":{"provider":{"enum":["alpaca","marketstack"]},"startDate":{"type":"string"},"endDate":{"type":"string"},"timeframe":{"enum":["1D","1H"]},"nicheId":{"type":"number"},"nicheKey":{"type":"string"},"equitiesOnly":{"type":"boolean"},"excludeEtfs":{"type":"boolean"},"excludeIndiaEtfs":{"type":"boolean"}},"additionalProperties":false,"required":["provider","startDate","endDate","timeframe","nicheId","nicheKey","equitiesOnly","excludeEtfs","excludeIndiaEtfs"]},"Input_Object_ad746b5e0c2c":{"type":"object","properties":{"provider":{"enum":["alpaca","marketstack"]},"startDate":{"type":"string"},"endDate":{"type":"string"},"timeframe":{"enum":["1D","1H"]},"source":{"type":"string","const":"catalog"},"country":{"type":"string"},"geography":{"enum":["exposure","listing"]},"instrumentType":{"enum":["other","stock","etf"]},"theme":{"type":"string"}},"additionalProperties":false,"required":["provider","startDate","endDate","timeframe","source","country","geography","instrumentType"]},"Response_RuleChatResponse_f44f5b483fb8":{"type":"object","properties":{"kind":{"enum":["clarify","unsupported","draft"]},"message":{"type":"string"},"proposal":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_RuleProposal_cd3d093aca63"}]}},"additionalProperties":true,"required":["kind","message","proposal"]},"Response_RuleProposal_cd3d093aca63":{"type":"object","properties":{"hypothesisId":{"type":"string"},"revision":{"type":"number"},"hash":{"type":"string"},"status":{"type":"string","const":"not_confirmed"},"envelope":{"$ref":"#/components/schemas/Response_RuleEnvelope_109b42f4878d"},"readback":{"$ref":"#/components/schemas/Response___object_2b6559eb0b96"}},"additionalProperties":true,"required":["hypothesisId","revision","hash","status","envelope","readback"]},"Response_RuleEnvelope_109b42f4878d":{"type":"object","properties":{"spec":{"$ref":"#/components/schemas/Response_RuleSpec_414bc7b89493"},"sizing":{"$ref":"#/components/schemas/Response_RuleSizing_6ef4bd2630cd"},"dataset":{"anyOf":[{"$ref":"#/components/schemas/Response_ResearchNicheDataset_959394501b76"},{"$ref":"#/components/schemas/Response_Object_3b8f41f69a7f"}]}},"additionalProperties":true,"required":["spec","sizing","dataset"]},"Response_RuleSpec_414bc7b89493":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"type":{"type":"string","const":"rule"},"side":{"type":"string","const":"long"},"bar":{"type":"string","const":"1d"},"entry":{"anyOf":[{"$ref":"#/components/schemas/Response_RulePredicate_48640801771e"},{"$ref":"#/components/schemas/Response___type_2f35d26ea94b"}]},"exit":{"anyOf":[{"$ref":"#/components/schemas/Response_RulePredicate_48640801771e"},{"$ref":"#/components/schemas/Response___type_2f35d26ea94b"}]},"stop_loss_pct":{"anyOf":[{"type":"null"},{"type":"number"}]},"take_profit_pct":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["schema_version","type","side","bar","entry","exit","stop_loss_pct","take_profit_pct"]},"Response_RuleSizing_6ef4bd2630cd":{"type":"object","properties":{"mode":{"type":"string","const":"equal_notional"},"position_pct":{"type":"number"},"max_gross_pct":{"type":"number"},"simultaneous":{"type":"string","const":"proportional"},"pyramiding":{"type":"boolean","const":false},"borrowing":{"type":"boolean","const":false}},"additionalProperties":true,"required":["mode","position_pct","max_gross_pct","simultaneous","pyramiding","borrowing"]},"Response___object_2b6559eb0b96":{"type":"object","properties":{"entry":{"$ref":"#/components/schemas/Response___object_2e6a623422eb"},"exit":{"$ref":"#/components/schemas/Response___object_2e6a623422eb"},"side":{"type":"string"},"bar":{"type":"string"},"execution":{"type":"string"},"stopLossPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"takeProfitPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"sizing":{"$ref":"#/components/schemas/Response_RuleSizing_6ef4bd2630cd"},"searchTrials":{"type":"number"},"evaluatorVersion":{"type":"string"}},"additionalProperties":true,"required":["entry","exit","side","bar","execution","stopLossPct","takeProfitPct","sizing","searchTrials","evaluatorVersion"]},"Response___object_2e6a623422eb":{"type":"object","properties":{"match":{"type":"string"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/Response___object_4beb1de014a7"}}},"additionalProperties":true,"required":["match","conditions"]},"Response___object_4beb1de014a7":{"type":"object","properties":{"left":{"type":"string"},"operator":{"type":"string"},"right":{"type":"string"}},"additionalProperties":true,"required":["left","operator","right"]},"Response___object_c016ae8f4997":{"type":"object","properties":{"code":{"type":"string"}},"additionalProperties":true,"required":["code"]},"Response___object_125f2a8b5e77":{"type":"object","properties":{"code":{"type":"string"},"error":{"type":"string"}},"additionalProperties":true,"required":["code","error"]},"Response___object_9cbce28bcf70":{"type":"object","properties":{"form":{"type":"boolean"},"runtime":{"type":"boolean"},"chat":{"type":"boolean"}},"additionalProperties":true,"required":["form","runtime","chat"]},"Input___type_fbdd32627465":{"type":"object","properties":{"action":{"type":"string","const":"save"},"hypothesisId":{"anyOf":[{"type":"null"},{"type":"string"}]},"expectedRevision":{"type":"number"},"envelope":{"$ref":"#/components/schemas/Input_RuleEnvelope_a38457de4853"},"idempotencyKey":{"type":"string"}},"additionalProperties":false,"required":["action","hypothesisId","expectedRevision","envelope","idempotencyKey"]},"Input___type_ad10799f2c86":{"type":"object","properties":{"action":{"type":"string","const":"confirm"},"hypothesisId":{"type":"string"},"expectedRevision":{"type":"number"},"expectedHash":{"type":"string"},"idempotencyKey":{"type":"string"}},"additionalProperties":false,"required":["action","hypothesisId","expectedRevision","expectedHash","idempotencyKey"]},"Response_RuleVersion_53e074ff95c1":{"type":"object","properties":{"revision":{"type":"number"},"hypothesisId":{"type":"string"},"hash":{"type":"string"},"envelope":{"$ref":"#/components/schemas/Response_RuleEnvelope_109b42f4878d"},"readback":{"$ref":"#/components/schemas/Response___object_2b6559eb0b96"},"status":{"type":"string","const":"confirmed"},"versionId":{"type":"string"},"versionNumber":{"type":"number"}},"additionalProperties":true,"required":["revision","hypothesisId","hash","envelope","readback","status","versionId","versionNumber"]},"Response___object_4c420f5f515b":{"type":"object","properties":{"code":{"type":"string"},"error":{"type":"string"},"field":{"type":"string"}},"additionalProperties":true,"required":["code","error","field"]},"Response___object_d7d501e53190":{"type":"object","properties":{"providers":{"type":"array","items":{"enum":["github","x"]}}},"additionalProperties":true,"required":["providers"]},"Response___object_07663f4a376a":{"type":"object","properties":{"url":{"type":"string"}},"additionalProperties":true,"required":["url"]},"Response___object_b63ca8316e41":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_7e7b96e4f981":{"type":"object","properties":{"provider":{"enum":["github","x"]},"linking":{"type":"boolean"},"needsEmail":{"type":"boolean"},"codeSent":{"type":"boolean"}},"additionalProperties":true,"required":["provider","linking","needsEmail","codeSent"]},"Response___object_55daae5d2042":{"type":"object","properties":{"providers":{"type":"array","items":{"description":"JSON value whose shape is determined by the resource or provider."}}},"additionalProperties":true,"required":["providers"]},"Response___object_4323a1c61381":{"type":"object","properties":{"sent":{"type":"boolean"}},"additionalProperties":true,"required":["sent"]},"Response___object_1bd4c863344a":{"type":"object","properties":{"success":{"type":"boolean"},"linked":{"type":"boolean"},"returnTo":{"type":"string"}},"additionalProperties":true,"required":["success","linked","returnTo"]},"Response___type_dde7d92bc899":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response_SparklineResponse_af29de7b5c2a":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_SparklineItem_4dbe5c41c61a"}},"page":{"type":"number"},"pageSize":{"type":"number"},"total":{"type":"number"},"updatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"windowStart":{"anyOf":[{"type":"null"},{"type":"string"}]},"windowEnd":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["items","page","pageSize","total","updatedAt","windowStart","windowEnd"]},"Response_SparklineItem_4dbe5c41c61a":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":"string"},"assetType":{"anyOf":[{"type":"null"},{"type":"string"}]},"closes":{"type":"array","items":{"type":"number"}},"timestamps":{"type":"array","items":{"type":"string"}},"lastClose":{"type":"number"},"firstClose":{"type":"number"},"change":{"type":"number"},"changePercent":{"type":"number"},"volume":{"type":"number"},"rankScore":{"type":"number"},"trend":{"enum":["flat","up","down"]}},"additionalProperties":true,"required":["symbol","name","assetType","closes","timestamps","lastClose","firstClose","change","changePercent","volume","rankScore","trend"]},"Response___object_6753e7ff45c8":{"type":"object","properties":{"error":{"type":"string"},"maxPage":{"type":"number"}},"additionalProperties":true,"required":["error","maxPage"]},"Response___object_e2d6dcc91883":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_d20e8c08af80":{"type":"object","properties":{"strategies":{"type":"array","items":{"$ref":"#/components/schemas/Response_RuntimeStrategySummary_160771cbedd3"}}},"additionalProperties":true,"required":["strategies"]},"Response_RuntimeStrategySummary_160771cbedd3":{"type":"object","properties":{"strategyKey":{"type":"string"},"strategyVariant":{"type":"string"},"strategyName":{"type":"string"},"latestCreatedAt":{"type":"string"},"strategyStartDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"isLive":{"type":"boolean"},"tradingStatus":{"anyOf":[{"type":"null"},{"type":"string","const":"paper"},{"type":"string","const":"certified"}]},"liveScopeCount":{"type":"number"},"latestActiveArtifactId":{"anyOf":[{"type":"null"},{"type":"number"}]},"strategyRegistryId":{"anyOf":[{"type":"null"},{"type":"number"}]},"strategyId":{"anyOf":[{"type":"null"},{"type":"string"}]},"alias":{"anyOf":[{"type":"null"},{"type":"string"}]},"pnl":{"anyOf":[{"type":"null"},{"type":"number"}]},"pnlPercent":{"anyOf":[{"type":"null"},{"type":"number"}]},"sharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"winRate":{"anyOf":[{"type":"null"},{"type":"number"}]},"drawdown":{"anyOf":[{"type":"null"},{"type":"number"}]},"closedTrades":{"anyOf":[{"type":"null"},{"type":"number"}]},"runDurationMs":{"anyOf":[{"type":"null"},{"type":"number"}]},"lastExecutionResult":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["strategyKey","strategyVariant","strategyName","latestCreatedAt","strategyStartDate","isLive","tradingStatus","liveScopeCount","latestActiveArtifactId","strategyRegistryId","strategyId","alias","pnl","pnlPercent","sharpe","winRate","drawdown","closedTrades","runDurationMs","lastExecutionResult"]},"Response___object_18c32f1387a3":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_da3d0360dd40":{"type":"object","properties":{"niches":{"type":"array","items":{"$ref":"#/components/schemas/Response_PublishedStrategyNicheMapItem_dd3b295a63e0"}}},"additionalProperties":true,"required":["niches"]},"Response___object_ad0b6ea0eb4e":{"type":"object","properties":{"error":{"type":"string","const":"invalid_strategy_id"}},"additionalProperties":true,"required":["error"]},"Response___object_d0ac29b06057":{"type":"object","properties":{"lineage":{"$ref":"#/components/schemas/Response_StrategyLineageResponse_9f1c9efa45c4"}},"additionalProperties":true,"required":["lineage"]},"Response_StrategyLineageResponse_9f1c9efa45c4":{"type":"object","properties":{"focusStrategyId":{"type":"string"},"rootStrategyId":{"type":"string"},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/Response_StrategyLineageNode_23e53f6e94ce"}},"truncated":{"type":"boolean"},"depthLimit":{"type":"number"}},"additionalProperties":true,"required":["focusStrategyId","rootStrategyId","nodes","truncated","depthLimit"]},"Response_StrategyLineageNode_23e53f6e94ce":{"type":"object","properties":{"strategyRegistryId":{"type":"number"},"strategyId":{"type":"string"},"alias":{"type":"string"},"displayName":{"type":"string"},"parentStrategyId":{"anyOf":[{"type":"null"},{"type":"string"}]},"forkDepth":{"type":"number"},"state":{"enum":["pending","published"]},"lifecycleStatus":{"anyOf":[{"type":"null"},{"type":"string"}]},"linkedRunId":{"anyOf":[{"type":"null"},{"type":"string"}]},"linkedRunStatus":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["strategyRegistryId","strategyId","alias","displayName","parentStrategyId","forkDepth","state","lifecycleStatus","linkedRunId","linkedRunStatus","createdAt"]},"Response___object_06e7e2dc4f82":{"type":"object","properties":{"error":{"enum":["invalid_strategy_id","strategy_id_required"]}},"additionalProperties":true,"required":["error"]},"Response___object_7e6cda526408":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true,"required":["error","code"]},"Response_StrategyForkResult_8dcd6e59e984":{"type":"object","properties":{"runId":{"type":"string"},"createdAt":{"type":"string"},"idempotentReplay":{"type":"boolean"},"parentStrategyId":{"type":"string"},"parentStrategyAlias":{"type":"string"},"childStrategyId":{"type":"string"},"childStrategyAlias":{"type":"string"}},"additionalProperties":true,"required":["runId","createdAt","idempotentReplay","parentStrategyId","parentStrategyAlias","childStrategyId","childStrategyAlias"]},"Response___object_1fba614ea4e3":{"type":"object","properties":{"strategy":{"$ref":"#/components/schemas/Response_PublishedStrategyDetail_a93199ce9702"}},"additionalProperties":true,"required":["strategy"]},"Response_PublishedStrategyDetail_a93199ce9702":{"type":"object","properties":{"headline":{"$ref":"#/components/schemas/Response_PublishedStrategyHeadline_8a738bb97335"},"links":{"$ref":"#/components/schemas/Response_PublishedStrategyLinks_ead04d42c13e"},"template":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyTemplatePanel_f1b351837978"}]},"snapshot":{"$ref":"#/components/schemas/Response_PublishedStrategySnapshot_402c753f74a5"},"lineage":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyLineageSnapshot_fe0c2da4d122"}]},"niche":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyNicheSnapshot_b343e950e786"}]},"certificationLifecycle":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyCertificationLifecycle_626d8331d244"}]},"audit":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyAuditDashboard_7374fb644c20"}]},"paperRuntime":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategyPaperRuntime_18fdf55e1a59"}]}},"additionalProperties":true,"required":["headline","links","template","snapshot","audit"]},"Response_PublishedStrategyHeadline_8a738bb97335":{"type":"object","properties":{"strategyId":{"type":"string"},"title":{"type":"string"},"alias":{"type":"string"},"identityLabel":{"type":"string"},"publishedAt":{"type":"string"},"updatedAt":{"type":"string"}},"additionalProperties":true,"required":["strategyId","title","alias","identityLabel","publishedAt","updatedAt"]},"Response_PublishedStrategyLinks_ead04d42c13e":{"type":"object","properties":{"canvasHref":{"type":"string"},"strategyLabHref":{"type":"string"}},"additionalProperties":true,"required":["canvasHref","strategyLabHref"]},"Response_PublishedStrategyTemplatePanel_f1b351837978":{"type":"object","properties":{"renderedMarkdown":{"type":"string"},"updatedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"requiredParams":{"type":"array","items":{"type":"string"}},"chartTheme":{"$ref":"#/components/schemas/Response_Record_c64b3af77a06"}},"additionalProperties":true,"required":["renderedMarkdown","updatedAt","requiredParams","chartTheme"]},"Response_PublishedStrategySnapshot_402c753f74a5":{"type":"object","properties":{"artifact":{"$ref":"#/components/schemas/Response_PublishedStrategyArtifactSnapshot_949d86c519c4"},"deployments":{"$ref":"#/components/schemas/Response___type_ae582d64bcef"},"latestSignal":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_PublishedStrategySignalSnapshot_fc67e65ecf10"}]}},"additionalProperties":true,"required":["artifact","deployments","latestSignal"]},"Response_PublishedStrategyArtifactSnapshot_949d86c519c4":{"type":"object","properties":{"version":{"type":"string"},"createdAt":{"type":"string"},"publishedAt":{"type":"string"}},"additionalProperties":true,"required":["version","createdAt","publishedAt"]},"Response___type_ae582d64bcef":{"type":"object","properties":{"totalActive":{"type":"number"},"exchanges":{"type":"array","items":{"$ref":"#/components/schemas/Response_PublishedStrategyDeploymentSnapshot_203f3337fb0b"}}},"additionalProperties":true,"required":["totalActive","exchanges"]},"Response_PublishedStrategyDeploymentSnapshot_203f3337fb0b":{"type":"object","properties":{"exchange":{"type":"string"},"deploymentCount":{"type":"number"},"activatedAt":{"type":"string"}},"additionalProperties":true,"required":["exchange","deploymentCount","activatedAt"]},"Response_PublishedStrategySignalSnapshot_fc67e65ecf10":{"type":"object","properties":{"symbol":{"type":"string"},"exchange":{"type":"string"},"tradingDay":{"type":"string"},"entryDay":{"type":"string"},"predProbNext5Up":{"type":"number"},"probThreshold":{"type":"number"},"tpPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"slPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"reserveCashPct":{"anyOf":[{"type":"null"},{"type":"number"}]},"decisionReason":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"}},"additionalProperties":true,"required":["symbol","exchange","tradingDay","entryDay","predProbNext5Up","probThreshold","tpPct","slPct","reserveCashPct","decisionReason","createdAt"]},"Response_PublishedStrategyLineageSnapshot_fe0c2da4d122":{"type":"object","properties":{"forkDepth":{"type":"number"},"publishedForkCount":{"type":"number"}},"additionalProperties":true,"required":["forkDepth","publishedForkCount"]},"Response_PublishedStrategyNicheSnapshot_b343e950e786":{"type":"object","properties":{"nicheId":{"anyOf":[{"type":"null"},{"type":"number"}]},"nicheDisplayName":{"anyOf":[{"type":"null"},{"type":"string"}]},"entryMode":{"anyOf":[{"type":"null"},{"type":"string","const":"created_new_niche"},{"type":"string","const":"joined_existing_niche"}]},"currentOutcome":{"anyOf":[{"type":"null"},{"type":"string","const":"failed"},{"type":"string","const":"promoted"},{"type":"string","const":"withdrawn"},{"type":"string","const":"in_progress"}]}},"additionalProperties":true,"required":["nicheId","nicheDisplayName","entryMode","currentOutcome"]},"Response_PublishedStrategyCertificationLifecycle_626d8331d244":{"type":"object","properties":{"overallStatus":{"enum":["live","stress_testing","stress_failed","paper_active","paper_failed","retired","experimental"]},"sourceRunId":{"anyOf":[{"type":"null"},{"type":"string"}]},"artifact":{"$ref":"#/components/schemas/Response___type_b1c02cd2e8de"},"registry":{"$ref":"#/components/schemas/Response___type_61a4b05d24bb"},"stress":{"$ref":"#/components/schemas/Response___type_87e02066d1da"},"paper":{"$ref":"#/components/schemas/Response___type_42b3fd5a97d7"}},"additionalProperties":true,"required":["overallStatus","sourceRunId","artifact","registry","stress","paper"]},"Response___type_b1c02cd2e8de":{"type":"object","properties":{"artifactId":{"anyOf":[{"type":"null"},{"type":"number"}]},"lifecycleStatus":{"anyOf":[{"type":"null"},{"type":"string"}]},"lifecycleReasonCode":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["artifactId","lifecycleStatus","lifecycleReasonCode"]},"Response___type_61a4b05d24bb":{"type":"object","properties":{"strategyRegistryId":{"anyOf":[{"type":"null"},{"type":"number"}]},"strategyId":{"anyOf":[{"type":"null"},{"type":"string"}]},"alias":{"anyOf":[{"type":"null"},{"type":"string"}]},"nicheId":{"anyOf":[{"type":"null"},{"type":"number"}]},"nicheDisplayName":{"anyOf":[{"type":"null"},{"type":"string"}]},"entryMode":{"anyOf":[{"type":"null"},{"type":"string","const":"created_new_niche"},{"type":"string","const":"joined_existing_niche"}]}},"additionalProperties":true,"required":["strategyRegistryId","strategyId","alias","nicheId","nicheDisplayName","entryMode"]},"Response___type_87e02066d1da":{"type":"object","properties":{"stressTestId":{"anyOf":[{"type":"null"},{"type":"number"}]},"status":{"enum":["running","error","failed","queued","not_started","waiting_resources","passed"]},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"completedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"failedGateNames":{"type":"array","items":{"type":"string"}},"passedGateCount":{"type":"number"},"failedGateCount":{"type":"number"},"errorMessage":{"anyOf":[{"type":"null"},{"type":"string"}]},"promotionSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"tradeCount":{"anyOf":[{"type":"null"},{"type":"number"}]},"monteCarlo":{"$ref":"#/components/schemas/Response___type_ba354227dc6c"}},"additionalProperties":true,"required":["stressTestId","status","startedAt","completedAt","failedGateNames","passedGateCount","failedGateCount","errorMessage","promotionSharpe","tradeCount","monteCarlo"]},"Response___type_ba354227dc6c":{"type":"object","properties":{"status":{"enum":["failed","unavailable","not_started","passed","warning","skipped"]},"gatePassed":{"anyOf":[{"type":"null"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"resultStatus":{"anyOf":[{"type":"null"},{"type":"string"}]},"pValue":{"anyOf":[{"type":"null"},{"type":"number"}]},"detailAvailable":{"type":"boolean"}},"additionalProperties":true,"required":["status","gatePassed","resultStatus","pValue","detailAvailable"]},"Response___type_42b3fd5a97d7":{"type":"object","properties":{"status":{"enum":["running","blocked","failed","queued","promoted","withdrawn","not_started"]},"execution":{"$ref":"#/components/schemas/Response_PublishedStrategyPaperExecutionSnapshot_63d7ca4ffff5"},"paperPeriodId":{"anyOf":[{"type":"null"},{"type":"number"}]},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"endedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"requiredDays":{"anyOf":[{"type":"null"},{"type":"number"}]},"elapsedTradingDays":{"anyOf":[{"type":"null"},{"type":"number"}]},"outcome":{"anyOf":[{"type":"null"},{"type":"string","const":"failed"},{"type":"string","const":"promoted"},{"type":"string","const":"withdrawn"}]},"paperSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"stressSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"requiredPaperSharpe":{"anyOf":[{"type":"null"},{"type":"number"}]},"gatePassed":{"anyOf":[{"type":"null"},{"type":"boolean","const":false},{"type":"boolean","const":true}]},"evaluatedTradingDays":{"anyOf":[{"type":"null"},{"type":"number"}]},"tradeCount":{"anyOf":[{"type":"null"},{"type":"number"}]}},"additionalProperties":true,"required":["status","paperPeriodId","startedAt","endedAt","requiredDays","elapsedTradingDays","outcome","paperSharpe","stressSharpe","requiredPaperSharpe","gatePassed","evaluatedTradingDays","tradeCount"]},"Response___object_84a7e3218b0e":{"type":"object","properties":{"strategyId":{"type":"string"},"autoExecution":{"$ref":"#/components/schemas/Response_PublishedStrategyAutoExecutionControl_a3a74466e940"}},"additionalProperties":true,"required":["strategyId","autoExecution"]},"Response___object_69bc38e58954":{"type":"object","properties":{"error":{"enum":["invalid_control_action","invalid_pause_minutes"]}},"additionalProperties":true,"required":["error"]},"Response_EurekaStrategyRetargetCreateResponse_1b9ca06fe9f9":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/Response_EurekaStrategyRetargetJob_fe2b716578b2"},"idempotentReplay":{"type":"boolean"}},"additionalProperties":true,"required":["job","idempotentReplay"]},"Response_EurekaStrategyRetargetJob_fe2b716578b2":{"type":"object","properties":{"jobId":{"type":"string"},"mode":{"enum":["frozen_evaluation","retrain"]},"status":{"enum":["running","failed","cancelled","queued","completed","cancelling"]},"source":{"$ref":"#/components/schemas/Response_EurekaStrategyRetargetSourceSnapshot_7bafb3276be4"},"symbols":{"type":"array","items":{"type":"string"}},"startDate":{"type":"string"},"endDate":{"type":"string"},"overlap":{"$ref":"#/components/schemas/Response_EurekaStrategyRetargetOverlapDisclosure_b3cd542cb1f3"},"result":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_EurekaStrategyFrozenEvaluationResult_a58b778635ec"},{"$ref":"#/components/schemas/Response_EurekaStrategyRetrainResult_662b91a1edb7"}]},"errorCode":{"anyOf":[{"type":"null"},{"type":"string"}]},"errorMessage":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"null"},{"type":"string"}]},"finishedAt":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["jobId","mode","status","source","symbols","startDate","endDate","overlap","result","errorCode","errorMessage","createdAt","updatedAt","startedAt","finishedAt"]},"Response_EurekaStrategyRetargetSourceSnapshot_7bafb3276be4":{"type":"object","properties":{"runId":{"type":"string"},"artifactId":{"anyOf":[{"type":"null"},{"type":"number"}]},"artifactVersion":{"anyOf":[{"type":"null"},{"type":"string"}]},"candidateId":{"anyOf":[{"type":"null"},{"type":"string"}]},"sourceSymbols":{"type":"array","items":{"type":"string"}},"sourceStartDate":{"anyOf":[{"type":"null"},{"type":"string"}]},"sourceEndDate":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["runId","artifactId","artifactVersion","candidateId","sourceSymbols","sourceStartDate","sourceEndDate"]},"Response_EurekaStrategyRetargetOverlapDisclosure_b3cd542cb1f3":{"type":"object","properties":{"sharedSymbols":{"type":"array","items":{"type":"string"}},"sharesSourceSymbols":{"type":"boolean"},"overlapsSourceDataWindow":{"type":"boolean"},"message":{"type":"string"}},"additionalProperties":true,"required":["sharedSymbols","sharesSourceSymbols","overlapsSourceDataWindow","message"]},"Response_EurekaStrategyFrozenEvaluationResult_a58b778635ec":{"type":"object","properties":{"kind":{"type":"string","const":"frozen_evaluation"},"artifactId":{"type":"number"},"artifactVersion":{"type":"string"},"evaluatedSymbols":{"type":"array","items":{"type":"string"}},"startDate":{"type":"string"},"endDate":{"type":"string"},"signalCount":{"type":"number"},"tradeCount":{"type":"number"},"totalReturn":{"type":"number"},"sharpe":{"type":"number"},"maxDrawdown":{"type":"number"},"trades":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaStrategyRetargetTrade_b16de63699dd"}},"truncatedTradeCount":{"type":"number"}},"additionalProperties":true,"required":["kind","artifactId","artifactVersion","evaluatedSymbols","startDate","endDate","signalCount","tradeCount","totalReturn","sharpe","maxDrawdown","trades","truncatedTradeCount"]},"Response_EurekaStrategyRetargetTrade_b16de63699dd":{"type":"object","properties":{"symbol":{"type":"string"},"signalDay":{"type":"string"},"entryDay":{"type":"string"},"exitDay":{"type":"string"},"entryPrice":{"type":"number"},"exitPrice":{"type":"number"},"exitReason":{"type":"string"},"netReturn":{"type":"number"},"netPnl":{"type":"number"}},"additionalProperties":true,"required":["symbol","signalDay","entryDay","exitDay","entryPrice","exitPrice","exitReason","netReturn","netPnl"]},"Response_EurekaStrategyRetrainResult_662b91a1edb7":{"type":"object","properties":{"kind":{"type":"string","const":"retrain"},"runId":{"type":"string"}},"additionalProperties":true,"required":["kind","runId"]},"Response___object_f0ac5d10cc90":{"type":"object","properties":{"code":{"type":"string"},"error":{"type":"string"}},"additionalProperties":true,"required":["code","error"]},"Response___object_d8fda0e7fa5c":{"type":"object","properties":{"jobs":{"type":"array","items":{"$ref":"#/components/schemas/Response_EurekaStrategyRetargetJob_fe2b716578b2"}}},"additionalProperties":true,"required":["jobs"]},"Response_EurekaStrategyRetargetSourcePreview_e7eedac2dd5f":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/Response_EurekaStrategyRetargetSourceSnapshot_7bafb3276be4"},"frozenAvailable":{"type":"boolean"},"frozenUnavailableReason":{"anyOf":[{"type":"null"},{"type":"string"}]},"retrainAvailable":{"type":"boolean"},"retrainUnavailableReason":{"anyOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":true,"required":["source","frozenAvailable","frozenUnavailableReason","retrainAvailable","retrainUnavailableReason"]},"Response___object_4afc18266d8b":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/Response_EurekaStrategyRetargetJob_fe2b716578b2"}},"additionalProperties":true,"required":["job"]},"Response___object_a9230097cb45":{"type":"object","properties":{"results":{"type":"array","items":false}},"additionalProperties":true,"required":["results"]},"Response___object_f68e9454df13":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Response_FollowSummary_a8f882dd8993"}}},"additionalProperties":true,"required":["results"]},"Response_FollowSummary_a8f882dd8993":{"type":"object","properties":{"id":{"type":"number"},"displayName":{"type":"string"},"avatarUrl":{"anyOf":[{"type":"null"},{"type":"string"}]},"followersCount":{"type":"number"},"followingCount":{"type":"number"},"isFollowing":{"type":"boolean"},"isSelf":{"type":"boolean"}},"additionalProperties":true,"required":["id","displayName","followersCount","followingCount","isFollowing","isSelf"]},"Response___object_3c6cb6745f38":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]},"Response___object_bfe26a16cff6":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/Response_FollowSummary_a8f882dd8993"},"isPublicProfile":{"type":"boolean"},"backtests":{"type":"array","items":{"$ref":"#/components/schemas/Response_BacktestSummaryDTO_18d4815d8be6"}}},"additionalProperties":true,"required":["user","isPublicProfile","backtests"]},"Response___object_56bfabb2043e":{"type":"object","properties":{"status":{"type":"string"},"user":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Response_FollowSummary_a8f882dd8993"}]}},"additionalProperties":true,"required":["status","user"]},"Response___object_7aa15ca58a69":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_FollowListItem_30981171b4cd"}}},"additionalProperties":true,"required":["items"]},"Response_FollowListItem_30981171b4cd":{"type":"object","properties":{"id":{"type":"number"},"displayName":{"type":"string"},"avatarUrl":{"anyOf":[{"type":"null"},{"type":"string"}]},"followedAt":{"type":"string"},"isFollowing":{"type":"boolean"},"isSelf":{"type":"boolean"}},"additionalProperties":true,"required":["id","displayName","followedAt","isFollowing","isSelf"]},"Response_WatchlistResponse_fd335c8cb427":{"type":"object","properties":{"tab":{"enum":["latest","trending","gainers","losers"]},"items":{"type":"array","items":{"$ref":"#/components/schemas/Response_WatchlistItem_5dcab76eb74e"}},"updatedAt":{"type":"string"},"partial":{"enum":[false,true]},"message":{"type":"string"}},"additionalProperties":true,"required":["tab","items","updatedAt"]},"Response_WatchlistItem_5dcab76eb74e":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":"string"},"assetType":{"enum":["ETF","Equity"]},"last":{"type":"number"},"change":{"type":"number"},"changePercent":{"type":"number"},"currency":{"type":"string"},"asOf":{"type":"string"}},"additionalProperties":true,"required":["symbol","name","assetType","last","change","changePercent","currency","asOf"]},"Response___object_b1317e890ba0":{"type":"object","properties":{"error":{"type":"string"}},"additionalProperties":true,"required":["error"]}}}}