@averyyy/pi-ai 0.85.1-piclient.7 → 0.85.1-piclient.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/devin-constants.d.ts +3 -0
- package/dist/api/devin-constants.d.ts.map +1 -0
- package/dist/api/devin-constants.js +3 -0
- package/dist/api/devin-constants.js.map +1 -0
- package/dist/api/devin-metadata.d.ts +2 -1
- package/dist/api/devin-metadata.d.ts.map +1 -1
- package/dist/api/devin-metadata.js +2 -1
- package/dist/api/devin-metadata.js.map +1 -1
- package/dist/providers/data/.manifest.json +1 -1
- package/dist/providers/devin.d.ts.map +1 -1
- package/dist/providers/devin.js +95 -2
- package/dist/providers/devin.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devin-constants.d.ts","sourceRoot":"","sources":["../../src/api/devin-constants.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,cAAc,+BAA+B,CAAC","sourcesContent":["/** Devin's shared API base URL, kept separate from the Node-only wire protocol. */\nexport const DEVIN_BASE_URL = \"https://server.codeium.com\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devin-constants.js","sourceRoot":"","sources":["../../src/api/devin-constants.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAG,4BAA4B,CAAC","sourcesContent":["/** Devin's shared API base URL, kept separate from the Node-only wire protocol. */\nexport const DEVIN_BASE_URL = \"https://server.codeium.com\";\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { DEVIN_BASE_URL } from "./devin-constants.ts";
|
|
2
|
+
export { DEVIN_BASE_URL };
|
|
2
3
|
/** Protocol client identity required by Devin Local; no installed CLI dependency. */
|
|
3
4
|
export declare function buildMetadata(input: {
|
|
4
5
|
apiKey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devin-metadata.d.ts","sourceRoot":"","sources":["../../src/api/devin-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"devin-metadata.d.ts","sourceRoot":"","sources":["../../src/api/devin-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CAoBT","sourcesContent":["import { DEVIN_BASE_URL } from \"./devin-constants.ts\";\nimport { encodeMessage, encodeString, encodeTimestampBody, encodeVarintField } from \"./devin-wire.ts\";\n\nexport { DEVIN_BASE_URL };\n\n/** Protocol client identity required by Devin Local; no installed CLI dependency. */\nexport function buildMetadata(input: {\n\tapiKey: string;\n\tuserJwt?: string;\n\tsessionId: string;\n\trequestId: bigint;\n\ttriggerId: string;\n\tdiscovery?: boolean;\n}): Buffer {\n\tconst name = input.discovery ? \"chisel\" : \"devin-cli\";\n\tconst version = input.discovery ? \"0.0.0-dev\" : \"3000.6.2\";\n\tconst token = input.apiKey.startsWith(\"devin-session-token$\") ? input.apiKey : `devin-session-token$${input.apiKey}`;\n\treturn Buffer.concat([\n\t\tencodeString(1, name),\n\t\tencodeString(2, version),\n\t\tencodeString(3, token),\n\t\tencodeString(4, \"en\"),\n\t\tencodeString(5, process.platform === \"win32\" ? \"windows\" : process.platform),\n\t\tencodeString(7, version),\n\t\tencodeVarintField(9, input.requestId),\n\t\tencodeString(10, input.sessionId),\n\t\tencodeString(12, \"chisel\"),\n\t\tencodeMessage(16, encodeTimestampBody()),\n\t\t...(input.userJwt ? [encodeString(21, input.userJwt)] : []),\n\t\tencodeString(25, input.triggerId),\n\t\tencodeString(28, \"chisel\"),\n\t\t...[3, 4, 6, 7, 8].map((value) => encodeVarintField(30, value)),\n\t]);\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { DEVIN_BASE_URL } from "./devin-constants.js";
|
|
1
2
|
import { encodeMessage, encodeString, encodeTimestampBody, encodeVarintField } from "./devin-wire.js";
|
|
2
|
-
export
|
|
3
|
+
export { DEVIN_BASE_URL };
|
|
3
4
|
/** Protocol client identity required by Devin Local; no installed CLI dependency. */
|
|
4
5
|
export function buildMetadata(input) {
|
|
5
6
|
const name = input.discovery ? "chisel" : "devin-cli";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devin-metadata.js","sourceRoot":"","sources":["../../src/api/devin-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEtG,
|
|
1
|
+
{"version":3,"file":"devin-metadata.js","sourceRoot":"","sources":["../../src/api/devin-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEtG,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAAC,KAO7B,EAAU;IACV,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,KAAK,CAAC,MAAM,EAAE,CAAC;IACrH,OAAO,MAAM,CAAC,MAAM,CAAC;QACpB,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC;QACrB,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;QACtB,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC;QACrB,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC5E,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;QACxB,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QACrC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC;QACjC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC;QAC1B,aAAa,CAAC,EAAE,EAAE,mBAAmB,EAAE,CAAC;QACxC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC;QACjC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC;QAC1B,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;KAC/D,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { DEVIN_BASE_URL } from \"./devin-constants.ts\";\nimport { encodeMessage, encodeString, encodeTimestampBody, encodeVarintField } from \"./devin-wire.ts\";\n\nexport { DEVIN_BASE_URL };\n\n/** Protocol client identity required by Devin Local; no installed CLI dependency. */\nexport function buildMetadata(input: {\n\tapiKey: string;\n\tuserJwt?: string;\n\tsessionId: string;\n\trequestId: bigint;\n\ttriggerId: string;\n\tdiscovery?: boolean;\n}): Buffer {\n\tconst name = input.discovery ? \"chisel\" : \"devin-cli\";\n\tconst version = input.discovery ? \"0.0.0-dev\" : \"3000.6.2\";\n\tconst token = input.apiKey.startsWith(\"devin-session-token$\") ? input.apiKey : `devin-session-token$${input.apiKey}`;\n\treturn Buffer.concat([\n\t\tencodeString(1, name),\n\t\tencodeString(2, version),\n\t\tencodeString(3, token),\n\t\tencodeString(4, \"en\"),\n\t\tencodeString(5, process.platform === \"win32\" ? \"windows\" : process.platform),\n\t\tencodeString(7, version),\n\t\tencodeVarintField(9, input.requestId),\n\t\tencodeString(10, input.sessionId),\n\t\tencodeString(12, \"chisel\"),\n\t\tencodeMessage(16, encodeTimestampBody()),\n\t\t...(input.userJwt ? [encodeString(21, input.userJwt)] : []),\n\t\tencodeString(25, input.triggerId),\n\t\tencodeString(28, \"chisel\"),\n\t\t...[3, 4, 6, 7, 8].map((value) => encodeVarintField(30, value)),\n\t]);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"schemaVersion":3,"generatedAt":"2026-09-
|
|
1
|
+
{"schemaVersion":3,"generatedAt":"2026-09-16T02:27:03.201Z","structureHash":"4fdb275b14dde95f461ae68e7790c8a557263f228e3f431a68ff9a7ccb0af450","files":{"amazon-bedrock.json":"843ede349a0435b8a4228733dfde8cff3baea7c134cb46fe7409ceef1b424f9c","ant-ling.json":"4979fe79d99ed97382d7ce40170c6132e932e77906de1eb54464c042e7d63633","anthropic.json":"c0e1cfcef8531b5d0852c0e74790290f130dbcb4591b6578bb0d8a4b464231c0","azure-openai-responses.json":"2f42741e47dbebd8491cf40bff1de313fc2221f55e16bc02fd6e5d50b5f8fefe","baseten.json":"d155c434294b5167244cffb6dea6793f9669e91e8ab65b564f9510d81b330e37","cerebras.json":"9eaa554e1b02f3665f8f63e6432d253bf81351af7c72001054dd8108aa528a52","cloudflare-ai-gateway.json":"eb2bf274394a157714072a2726675fbdfd2cc370e359b6665fa6aca409617089","cloudflare-workers-ai.json":"07ef63208ff7517fd1a80962f18143e21de399640423329490b157f459ccf995","deepseek.json":"8cc5e02a8eb3f1ead25da01d6ebac7dbd9aa5134c561026de2076cc990eb3349","fireworks.json":"f393e2f9d3ba8b00b39911ac7a688c96ad79b549ba8b9ec9403398e0eee75d29","github-copilot.json":"5ddbd26a51c3d60975dfc41c685f65ee0964b94352379f9f3dac77715f389004","google-vertex.json":"e1631109172dc1f7d7977570420a5bb86258bdd1088427e244a2c51545c4f24d","google.json":"7619bf03edd2a7acb06a2274a14b13c3a61354288abe029a758401d4de36a8fd","groq.json":"e4728fd72e358cd8f25e9a518e9b49a521ef44523d3debe38a7db9e0663c4077","huggingface.json":"a488b6f175b382277ccf7d487f877ef0c698994576bb55d2410838bf9c8c7c41","kimi-coding.json":"202d4b9a3e3327cebb01626fb1818f92627e59800f27858902c4ce69105f0bd7","minimax-cn.json":"65d37e55a6d9585855f94b3fb7739308d107fe248ebd9e1001d1c5d4606ad2c4","minimax.json":"c7dc5765995ae77242916430929c7cc9a782589f7e483e13f7e01663190d028e","mistral.json":"e3a109306644bf2f2fa38fece50b2d3ce1dbe3b87b1f1b9e2d70cce7eb5c0ea1","moonshotai-cn.json":"63f77de8782dce6a8d4649b6075ee04c9732863ae85561e0867871220c558bde","moonshotai.json":"2a8dfb97eb905e991c22081dc09bd4a61c05b7fa9ac0d5c72d6930f601f490f1","nvidia.json":"7459d845fd752fb70a9be5a28be44dc5e2873fbd788e9c931d3200731db42ba9","openai-codex.json":"a10bfcfd34db6bcb98d8ee46175e154cab30530a137dbf31ac1434020ed3ffdd","openai.json":"775d3b7d95d14b741d0b287b1153d40f051a9ea03035a82b487889acc7fa69e2","opencode-go.json":"274c4fb1a4e99c286860174700b0b38997df62839efd2b76a8884db1d8dc331a","opencode.json":"7b878f5fb48e9fce68af0c3b507ddafd88a07b5ec7a8c06e9b99cf85b27324ac","openrouter.json":"c0548c18afe6f3dcc687a04e1f9508f285660238620fdd8208ce4498e64e7dd5","qwen-token-plan-cn.json":"f8f100c10968e3abcf444964452a5738d8408f08d0b18859187a034d3e573b00","qwen-token-plan-individual.json":"eb040e78595853e980011308b1bf9caacae6dc8a91abbac5ffebd402515dd2a6","qwen-token-plan.json":"f5dad46166a7c55fc7b6161cfb477c282d3f64fa301d3f472cc47f6a7e4889ec","together.json":"927c707d06f2236cdab13f14c870fb58bce0614ba7287bbcd57cc9fd66d191ed","vercel-ai-gateway.json":"757a80635ca95df93867b5993c181e9128a3f2e039c8831a7fde69f6b3fff171","xai.json":"037bde3de5ea72814c3f0b79da8b244c89feb708cc0cbf8596cdfac7682477b6","xiaomi-token-plan-ams.json":"a36446cb9e3cb4f7054617676fd711092245a74f703ba89573f21d2673b85fa8","xiaomi-token-plan-cn.json":"c295dadf4097b5d86af15e924fb2a1a6342bae9e0a9a5839c9fca216308c51e5","xiaomi-token-plan-sgp.json":"93d359575c2348c97d79a2b14e1e9437199bd4aee948d58611b3fbab75cd9fb3","xiaomi.json":"f06f1011d606d22311b1f4c50eb36d38b8cd99abf5760faee657d5559e87452b","zai-coding-cn.json":"d3c969020a7ab978497837a3301c7bca364d704082832221cfe61e6596333e56","zai.json":"f42790c77fb4681a656897a9d860b939916c0ddf979a5f16856bce9573cdf64e"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devin.d.ts","sourceRoot":"","sources":["../../src/providers/devin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"devin.d.ts","sourceRoot":"","sources":["../../src/providers/devin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,eAAO,MAAM,QAAQ,6CAAkC,CAAC;AA6FxD,6EAA6E;AAC7E,wBAAgB,aAAa,IAAI,QAAQ,CAAC,OAAO,CAAC,CAuCjD","sourcesContent":["import { DEVIN_BASE_URL } from \"../api/devin-constants.ts\";\nimport { lazyApi } from \"../api/lazy.ts\";\nimport { lazyOAuth } from \"../auth/helpers.ts\";\nimport { loadDevinOAuth, loadDevinRuntime } from \"../auth/oauth/load.ts\";\nimport type { Provider } from \"../models.ts\";\nimport type { Model } from \"../types.ts\";\n\nexport const devinApi = () => lazyApi(loadDevinRuntime);\n\n/**\n * Known model definitions used until an account catalog has been discovered.\n * Live Devin discovery remains authoritative and replaces this small fallback.\n */\nconst fallbackModels: Model<\"devin\">[] = [\n\t{\n\t\tid: \"claude-opus-5-max\",\n\t\tname: \"Claude Opus 5 Max\",\n\t\tprovider: \"devin\",\n\t\tapi: \"devin\",\n\t\tbaseUrl: DEVIN_BASE_URL,\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\n\t\t\toff: null,\n\t\t\tminimal: null,\n\t\t\tlow: null,\n\t\t\tmedium: null,\n\t\t\thigh: null,\n\t\t\txhigh: null,\n\t\t\tmax: \"claude-opus-5-max\",\n\t\t},\n\t\tinput: [\"text\", \"image\"],\n\t\tcontextWindow: 1_000_000,\n\t\tmaxTokens: 128_000,\n\t\tcost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 0 },\n\t},\n\t{\n\t\tid: \"swe-2-high\",\n\t\tname: \"SWE-2 High\",\n\t\tprovider: \"devin\",\n\t\tapi: \"devin\",\n\t\tbaseUrl: DEVIN_BASE_URL,\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\n\t\t\toff: null,\n\t\t\tminimal: null,\n\t\t\tlow: null,\n\t\t\tmedium: null,\n\t\t\thigh: \"swe-2-high\",\n\t\t\txhigh: null,\n\t\t\tmax: null,\n\t\t},\n\t\tinput: [\"text\", \"image\"],\n\t\tcontextWindow: 262_000,\n\t\tmaxTokens: 128_000,\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t},\n\t{\n\t\tid: \"swe-2-max\",\n\t\tname: \"SWE-2 Max\",\n\t\tprovider: \"devin\",\n\t\tapi: \"devin\",\n\t\tbaseUrl: DEVIN_BASE_URL,\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\n\t\t\toff: null,\n\t\t\tminimal: null,\n\t\t\tlow: null,\n\t\t\tmedium: null,\n\t\t\thigh: null,\n\t\t\txhigh: null,\n\t\t\tmax: \"swe-2-max\",\n\t\t},\n\t\tinput: [\"text\", \"image\"],\n\t\tcontextWindow: 262_000,\n\t\tmaxTokens: 128_000,\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t},\n\t{\n\t\tid: \"swe-2-medium\",\n\t\tname: \"SWE-2 Medium\",\n\t\tprovider: \"devin\",\n\t\tapi: \"devin\",\n\t\tbaseUrl: DEVIN_BASE_URL,\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\n\t\t\toff: null,\n\t\t\tminimal: null,\n\t\t\tlow: null,\n\t\t\tmedium: \"swe-2-medium\",\n\t\t\thigh: null,\n\t\t\txhigh: null,\n\t\t\tmax: null,\n\t\t},\n\t\tinput: [\"text\", \"image\"],\n\t\tcontextWindow: 262_000,\n\t\tmaxTokens: 128_000,\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t},\n];\n\n/** Devin Pro's account-owned model catalog and native subscription login. */\nexport function devinProvider(): Provider<\"devin\"> {\n\tlet models: Model<\"devin\">[] = [...fallbackModels];\n\tconst streams = devinApi();\n\treturn {\n\t\tid: \"devin\",\n\t\tname: \"Devin Pro\",\n\t\tauth: { oauth: lazyOAuth({ name: \"Devin Pro\", isSubscription: true, load: loadDevinOAuth }) },\n\t\tgetModels: () => models,\n\t\trefreshModels: async (context) => {\n\t\t\tif (context.stored) {\n\t\t\t\tconst restored = context.stored.models.filter(\n\t\t\t\t\t(model) => model.provider === \"devin\" && model.api === \"devin\",\n\t\t\t\t) as Model<\"devin\">[];\n\t\t\t\tconst restoredIds = new Set(restored.map((model) => model.id));\n\t\t\t\tconst restoredWithFallback = [...restored, ...fallbackModels.filter((model) => !restoredIds.has(model.id))];\n\t\t\t\tif (\n\t\t\t\t\t!(await context.publish({\n\t\t\t\t\t\tupdate: () => {\n\t\t\t\t\t\t\tmodels = restoredWithFallback;\n\t\t\t\t\t\t},\n\t\t\t\t\t}))\n\t\t\t\t)\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!context.allowNetwork || context.credential?.type !== \"oauth\") return;\n\t\t\tconst refreshed = await (await loadDevinRuntime()).discoverDevinModels(\n\t\t\t\tcontext.credential.access,\n\t\t\t\tcontext.signal,\n\t\t\t);\n\t\t\tawait context.publish({\n\t\t\t\tpersist: { models: refreshed, checkedAt: Date.now() },\n\t\t\t\tupdate: () => {\n\t\t\t\t\tmodels = refreshed;\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tstream: (model, context, options) => streams.stream(model, context, options),\n\t\tstreamSimple: (model, context, options) => streams.streamSimple(model, context, options),\n\t};\n}\n"]}
|
package/dist/providers/devin.js
CHANGED
|
@@ -1,10 +1,101 @@
|
|
|
1
|
+
import { DEVIN_BASE_URL } from "../api/devin-constants.js";
|
|
1
2
|
import { lazyApi } from "../api/lazy.js";
|
|
2
3
|
import { lazyOAuth } from "../auth/helpers.js";
|
|
3
4
|
import { loadDevinOAuth, loadDevinRuntime } from "../auth/oauth/load.js";
|
|
4
5
|
export const devinApi = () => lazyApi(loadDevinRuntime);
|
|
6
|
+
/**
|
|
7
|
+
* Known model definitions used until an account catalog has been discovered.
|
|
8
|
+
* Live Devin discovery remains authoritative and replaces this small fallback.
|
|
9
|
+
*/
|
|
10
|
+
const fallbackModels = [
|
|
11
|
+
{
|
|
12
|
+
id: "claude-opus-5-max",
|
|
13
|
+
name: "Claude Opus 5 Max",
|
|
14
|
+
provider: "devin",
|
|
15
|
+
api: "devin",
|
|
16
|
+
baseUrl: DEVIN_BASE_URL,
|
|
17
|
+
reasoning: true,
|
|
18
|
+
thinkingLevelMap: {
|
|
19
|
+
off: null,
|
|
20
|
+
minimal: null,
|
|
21
|
+
low: null,
|
|
22
|
+
medium: null,
|
|
23
|
+
high: null,
|
|
24
|
+
xhigh: null,
|
|
25
|
+
max: "claude-opus-5-max",
|
|
26
|
+
},
|
|
27
|
+
input: ["text", "image"],
|
|
28
|
+
contextWindow: 1_000_000,
|
|
29
|
+
maxTokens: 128_000,
|
|
30
|
+
cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 0 },
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: "swe-2-high",
|
|
34
|
+
name: "SWE-2 High",
|
|
35
|
+
provider: "devin",
|
|
36
|
+
api: "devin",
|
|
37
|
+
baseUrl: DEVIN_BASE_URL,
|
|
38
|
+
reasoning: true,
|
|
39
|
+
thinkingLevelMap: {
|
|
40
|
+
off: null,
|
|
41
|
+
minimal: null,
|
|
42
|
+
low: null,
|
|
43
|
+
medium: null,
|
|
44
|
+
high: "swe-2-high",
|
|
45
|
+
xhigh: null,
|
|
46
|
+
max: null,
|
|
47
|
+
},
|
|
48
|
+
input: ["text", "image"],
|
|
49
|
+
contextWindow: 262_000,
|
|
50
|
+
maxTokens: 128_000,
|
|
51
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: "swe-2-max",
|
|
55
|
+
name: "SWE-2 Max",
|
|
56
|
+
provider: "devin",
|
|
57
|
+
api: "devin",
|
|
58
|
+
baseUrl: DEVIN_BASE_URL,
|
|
59
|
+
reasoning: true,
|
|
60
|
+
thinkingLevelMap: {
|
|
61
|
+
off: null,
|
|
62
|
+
minimal: null,
|
|
63
|
+
low: null,
|
|
64
|
+
medium: null,
|
|
65
|
+
high: null,
|
|
66
|
+
xhigh: null,
|
|
67
|
+
max: "swe-2-max",
|
|
68
|
+
},
|
|
69
|
+
input: ["text", "image"],
|
|
70
|
+
contextWindow: 262_000,
|
|
71
|
+
maxTokens: 128_000,
|
|
72
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "swe-2-medium",
|
|
76
|
+
name: "SWE-2 Medium",
|
|
77
|
+
provider: "devin",
|
|
78
|
+
api: "devin",
|
|
79
|
+
baseUrl: DEVIN_BASE_URL,
|
|
80
|
+
reasoning: true,
|
|
81
|
+
thinkingLevelMap: {
|
|
82
|
+
off: null,
|
|
83
|
+
minimal: null,
|
|
84
|
+
low: null,
|
|
85
|
+
medium: "swe-2-medium",
|
|
86
|
+
high: null,
|
|
87
|
+
xhigh: null,
|
|
88
|
+
max: null,
|
|
89
|
+
},
|
|
90
|
+
input: ["text", "image"],
|
|
91
|
+
contextWindow: 262_000,
|
|
92
|
+
maxTokens: 128_000,
|
|
93
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
94
|
+
},
|
|
95
|
+
];
|
|
5
96
|
/** Devin Pro's account-owned model catalog and native subscription login. */
|
|
6
97
|
export function devinProvider() {
|
|
7
|
-
let models = [];
|
|
98
|
+
let models = [...fallbackModels];
|
|
8
99
|
const streams = devinApi();
|
|
9
100
|
return {
|
|
10
101
|
id: "devin",
|
|
@@ -14,9 +105,11 @@ export function devinProvider() {
|
|
|
14
105
|
refreshModels: async (context) => {
|
|
15
106
|
if (context.stored) {
|
|
16
107
|
const restored = context.stored.models.filter((model) => model.provider === "devin" && model.api === "devin");
|
|
108
|
+
const restoredIds = new Set(restored.map((model) => model.id));
|
|
109
|
+
const restoredWithFallback = [...restored, ...fallbackModels.filter((model) => !restoredIds.has(model.id))];
|
|
17
110
|
if (!(await context.publish({
|
|
18
111
|
update: () => {
|
|
19
|
-
models =
|
|
112
|
+
models = restoredWithFallback;
|
|
20
113
|
},
|
|
21
114
|
})))
|
|
22
115
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devin.js","sourceRoot":"","sources":["../../src/providers/devin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzE,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAExD,6EAA6E;AAC7E,MAAM,UAAU,aAAa,GAAsB;IAClD,IAAI,MAAM,GAAqB,
|
|
1
|
+
{"version":3,"file":"devin.js","sourceRoot":"","sources":["../../src/providers/devin.ts"],"names":[],"mappings":"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","sourcesContent":["import { DEVIN_BASE_URL } from \"../api/devin-constants.ts\";\nimport { lazyApi } from \"../api/lazy.ts\";\nimport { lazyOAuth } from \"../auth/helpers.ts\";\nimport { loadDevinOAuth, loadDevinRuntime } from \"../auth/oauth/load.ts\";\nimport type { Provider } from \"../models.ts\";\nimport type { Model } from \"../types.ts\";\n\nexport const devinApi = () => lazyApi(loadDevinRuntime);\n\n/**\n * Known model definitions used until an account catalog has been discovered.\n * Live Devin discovery remains authoritative and replaces this small fallback.\n */\nconst fallbackModels: Model<\"devin\">[] = [\n\t{\n\t\tid: \"claude-opus-5-max\",\n\t\tname: \"Claude Opus 5 Max\",\n\t\tprovider: \"devin\",\n\t\tapi: \"devin\",\n\t\tbaseUrl: DEVIN_BASE_URL,\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\n\t\t\toff: null,\n\t\t\tminimal: null,\n\t\t\tlow: null,\n\t\t\tmedium: null,\n\t\t\thigh: null,\n\t\t\txhigh: null,\n\t\t\tmax: \"claude-opus-5-max\",\n\t\t},\n\t\tinput: [\"text\", \"image\"],\n\t\tcontextWindow: 1_000_000,\n\t\tmaxTokens: 128_000,\n\t\tcost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 0 },\n\t},\n\t{\n\t\tid: \"swe-2-high\",\n\t\tname: \"SWE-2 High\",\n\t\tprovider: \"devin\",\n\t\tapi: \"devin\",\n\t\tbaseUrl: DEVIN_BASE_URL,\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\n\t\t\toff: null,\n\t\t\tminimal: null,\n\t\t\tlow: null,\n\t\t\tmedium: null,\n\t\t\thigh: \"swe-2-high\",\n\t\t\txhigh: null,\n\t\t\tmax: null,\n\t\t},\n\t\tinput: [\"text\", \"image\"],\n\t\tcontextWindow: 262_000,\n\t\tmaxTokens: 128_000,\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t},\n\t{\n\t\tid: \"swe-2-max\",\n\t\tname: \"SWE-2 Max\",\n\t\tprovider: \"devin\",\n\t\tapi: \"devin\",\n\t\tbaseUrl: DEVIN_BASE_URL,\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\n\t\t\toff: null,\n\t\t\tminimal: null,\n\t\t\tlow: null,\n\t\t\tmedium: null,\n\t\t\thigh: null,\n\t\t\txhigh: null,\n\t\t\tmax: \"swe-2-max\",\n\t\t},\n\t\tinput: [\"text\", \"image\"],\n\t\tcontextWindow: 262_000,\n\t\tmaxTokens: 128_000,\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t},\n\t{\n\t\tid: \"swe-2-medium\",\n\t\tname: \"SWE-2 Medium\",\n\t\tprovider: \"devin\",\n\t\tapi: \"devin\",\n\t\tbaseUrl: DEVIN_BASE_URL,\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\n\t\t\toff: null,\n\t\t\tminimal: null,\n\t\t\tlow: null,\n\t\t\tmedium: \"swe-2-medium\",\n\t\t\thigh: null,\n\t\t\txhigh: null,\n\t\t\tmax: null,\n\t\t},\n\t\tinput: [\"text\", \"image\"],\n\t\tcontextWindow: 262_000,\n\t\tmaxTokens: 128_000,\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t},\n];\n\n/** Devin Pro's account-owned model catalog and native subscription login. */\nexport function devinProvider(): Provider<\"devin\"> {\n\tlet models: Model<\"devin\">[] = [...fallbackModels];\n\tconst streams = devinApi();\n\treturn {\n\t\tid: \"devin\",\n\t\tname: \"Devin Pro\",\n\t\tauth: { oauth: lazyOAuth({ name: \"Devin Pro\", isSubscription: true, load: loadDevinOAuth }) },\n\t\tgetModels: () => models,\n\t\trefreshModels: async (context) => {\n\t\t\tif (context.stored) {\n\t\t\t\tconst restored = context.stored.models.filter(\n\t\t\t\t\t(model) => model.provider === \"devin\" && model.api === \"devin\",\n\t\t\t\t) as Model<\"devin\">[];\n\t\t\t\tconst restoredIds = new Set(restored.map((model) => model.id));\n\t\t\t\tconst restoredWithFallback = [...restored, ...fallbackModels.filter((model) => !restoredIds.has(model.id))];\n\t\t\t\tif (\n\t\t\t\t\t!(await context.publish({\n\t\t\t\t\t\tupdate: () => {\n\t\t\t\t\t\t\tmodels = restoredWithFallback;\n\t\t\t\t\t\t},\n\t\t\t\t\t}))\n\t\t\t\t)\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!context.allowNetwork || context.credential?.type !== \"oauth\") return;\n\t\t\tconst refreshed = await (await loadDevinRuntime()).discoverDevinModels(\n\t\t\t\tcontext.credential.access,\n\t\t\t\tcontext.signal,\n\t\t\t);\n\t\t\tawait context.publish({\n\t\t\t\tpersist: { models: refreshed, checkedAt: Date.now() },\n\t\t\t\tupdate: () => {\n\t\t\t\t\tmodels = refreshed;\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tstream: (model, context, options) => streams.stream(model, context, options),\n\t\tstreamSimple: (model, context, options) => streams.streamSimple(model, context, options),\n\t};\n}\n"]}
|
package/package.json
CHANGED