@opencode-ai/cli-linux-arm64-musl 0.0.0-beta-202606050000

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/bin/chunk-01tb5qes.js.map +131 -0
  2. package/bin/chunk-06d8aa69.js.map +10 -0
  3. package/bin/chunk-07w2xsfy.js.map +50 -0
  4. package/bin/chunk-0azwkk9z.js.map +12 -0
  5. package/bin/chunk-0d9ja06r.js.map +9 -0
  6. package/bin/chunk-14kv2kjk.js.map +13 -0
  7. package/bin/chunk-17j53wgt.js.map +11 -0
  8. package/bin/chunk-191djt7z.js.map +113 -0
  9. package/bin/chunk-1brm44vt.js.map +10 -0
  10. package/bin/chunk-1jb1dn9p.js.map +10 -0
  11. package/bin/chunk-1paeax4j.js.map +56 -0
  12. package/bin/chunk-1wb39pye.js.map +9 -0
  13. package/bin/chunk-2mjmecen.js.map +10 -0
  14. package/bin/chunk-2wqpg9fb.js.map +10 -0
  15. package/bin/chunk-32ewzcjk.js.map +10 -0
  16. package/bin/chunk-334z6v35.js.map +9 -0
  17. package/bin/chunk-3jqjf0hd.js.map +10 -0
  18. package/bin/chunk-3n6vddyq.js.map +73 -0
  19. package/bin/chunk-3zmvhepw.js.map +10 -0
  20. package/bin/chunk-4980h0t7.js.map +37 -0
  21. package/bin/chunk-4q5k6a0e.js.map +10 -0
  22. package/bin/chunk-55mssyns.js.map +388 -0
  23. package/bin/chunk-5ft9zwf9.js.map +10 -0
  24. package/bin/chunk-6ttpn29p.js.map +10 -0
  25. package/bin/chunk-7fvpf4bs.js.map +10 -0
  26. package/bin/chunk-7vb6kdat.js.map +10 -0
  27. package/bin/chunk-84amh6xf.js.map +11 -0
  28. package/bin/chunk-8akfq1ty.js.map +19 -0
  29. package/bin/chunk-8rd9r1gb.js.map +11 -0
  30. package/bin/chunk-8x80qvzn.js.map +10 -0
  31. package/bin/chunk-943th5qs.js.map +10 -0
  32. package/bin/chunk-94yf089p.js.map +10 -0
  33. package/bin/chunk-98cxndhz.js.map +9 -0
  34. package/bin/chunk-9f8tmby0.js.map +9 -0
  35. package/bin/chunk-9fbstsnw.js.map +9 -0
  36. package/bin/chunk-9hq8aywf.js.map +10 -0
  37. package/bin/chunk-9m7hf7ms.js.map +10 -0
  38. package/bin/chunk-9vf55fj3.js.map +10 -0
  39. package/bin/chunk-9w9rk9en.js.map +20 -0
  40. package/bin/chunk-9y4hgfns.js.map +10 -0
  41. package/bin/chunk-aag5p1fp.js.map +10 -0
  42. package/bin/chunk-axy1v6wd.js.map +27 -0
  43. package/bin/chunk-bj9msmj2.js.map +10 -0
  44. package/bin/chunk-bt0r89ee.js.map +9 -0
  45. package/bin/chunk-c2gsyspz.js.map +10 -0
  46. package/bin/chunk-c8hr0q5n.js.map +10 -0
  47. package/bin/chunk-cab6ccj0.js.map +10 -0
  48. package/bin/chunk-ck4nkjtx.js.map +193 -0
  49. package/bin/chunk-cvm4kr56.js.map +23 -0
  50. package/bin/chunk-cyb9bpgm.js.map +10 -0
  51. package/bin/chunk-d1p8awq6.js.map +10 -0
  52. package/bin/chunk-d6nz1m6v.js.map +10 -0
  53. package/bin/chunk-d9g5798m.js.map +81 -0
  54. package/bin/chunk-dcn0azxw.js.map +10 -0
  55. package/bin/chunk-dd9pfwmr.js.map +10 -0
  56. package/bin/chunk-dk4qekzk.js.map +10 -0
  57. package/bin/chunk-dk9tgwkh.js.map +9 -0
  58. package/bin/chunk-dzzhxh1c.js.map +10 -0
  59. package/bin/chunk-efsmps94.js.map +9 -0
  60. package/bin/chunk-f9k3mwxs.js.map +13 -0
  61. package/bin/chunk-fdw7znt6.js.map +11 -0
  62. package/bin/chunk-fs6t8jdg.js.map +10 -0
  63. package/bin/chunk-fzcqzwx5.js.map +10 -0
  64. package/bin/chunk-g4fcmhkj.js.map +11 -0
  65. package/bin/chunk-g4ff66n8.js.map +10 -0
  66. package/bin/chunk-g8mpn6ke.js.map +11 -0
  67. package/bin/chunk-gahs293a.js.map +10 -0
  68. package/bin/chunk-gh9dcqbv.js.map +10 -0
  69. package/bin/chunk-grvxd8zq.js.map +10 -0
  70. package/bin/chunk-gv6nagng.js.map +10 -0
  71. package/bin/chunk-h1vz14ze.js.map +167 -0
  72. package/bin/chunk-hav16yge.js.map +10 -0
  73. package/bin/chunk-hp5nnq6f.js.map +11 -0
  74. package/bin/chunk-hrcbafh3.js.map +9 -0
  75. package/bin/chunk-hxfsfpek.js.map +10 -0
  76. package/bin/chunk-jcqp2wmf.js.map +10 -0
  77. package/bin/chunk-jt9t8203.js.map +9 -0
  78. package/bin/chunk-k0980eb5.js.map +10 -0
  79. package/bin/chunk-kghptcgb.js.map +9 -0
  80. package/bin/chunk-kkvk5eez.js.map +10 -0
  81. package/bin/chunk-kv0b3sh5.js.map +10 -0
  82. package/bin/chunk-kvfs5rat.js.map +10 -0
  83. package/bin/chunk-mf0qqhvb.js.map +10 -0
  84. package/bin/chunk-mkze6twx.js.map +10 -0
  85. package/bin/chunk-mzjs3qj3.js.map +10 -0
  86. package/bin/chunk-n10mj2m3.js.map +17 -0
  87. package/bin/chunk-n2fbt143.js.map +9 -0
  88. package/bin/chunk-n6a0rctn.js.map +9 -0
  89. package/bin/chunk-njn9a3jp.js.map +13 -0
  90. package/bin/chunk-nkhzpsnk.js.map +13 -0
  91. package/bin/chunk-ny5cyeha.js.map +10 -0
  92. package/bin/chunk-p3nkd9t2.js.map +10 -0
  93. package/bin/chunk-p3pr1t3k.js.map +10 -0
  94. package/bin/chunk-p7j7e7hb.js.map +10 -0
  95. package/bin/chunk-p89bk96c.js.map +10 -0
  96. package/bin/chunk-pnkd37ss.js.map +20 -0
  97. package/bin/chunk-q6nf6fka.js.map +10 -0
  98. package/bin/chunk-qbpebjh2.js.map +10 -0
  99. package/bin/chunk-r55kafff.js.map +9 -0
  100. package/bin/chunk-rrwp4x01.js.map +10 -0
  101. package/bin/chunk-rt02k446.js.map +11 -0
  102. package/bin/chunk-s39nwv01.js.map +9 -0
  103. package/bin/chunk-s983v0dp.js.map +10 -0
  104. package/bin/chunk-san15sca.js.map +10 -0
  105. package/bin/chunk-sfk73pp2.js.map +10 -0
  106. package/bin/chunk-sjd3wbjd.js.map +10 -0
  107. package/bin/chunk-swbdmja3.js.map +10 -0
  108. package/bin/chunk-tc8tvjey.js.map +33 -0
  109. package/bin/chunk-tcqtz83b.js.map +10 -0
  110. package/bin/chunk-tgxxchfy.js.map +28 -0
  111. package/bin/chunk-tvxakxv2.js.map +10 -0
  112. package/bin/chunk-v81ta3tx.js.map +15 -0
  113. package/bin/chunk-va2h4xya.js.map +37 -0
  114. package/bin/chunk-vezq3hc4.js.map +9 -0
  115. package/bin/chunk-vmbpvmpg.js.map +10 -0
  116. package/bin/chunk-w7p62pb6.js.map +17 -0
  117. package/bin/chunk-wr4x72qd.js.map +13 -0
  118. package/bin/chunk-x3ywttp7.js.map +10 -0
  119. package/bin/chunk-x988wmrk.js.map +10 -0
  120. package/bin/chunk-x9zjg1f7.js.map +20 -0
  121. package/bin/chunk-xaqrhtz6.js.map +10 -0
  122. package/bin/chunk-xd2mrkwy.js.map +10 -0
  123. package/bin/chunk-xfh2377b.js.map +10 -0
  124. package/bin/chunk-xs0ras4j.js.map +51 -0
  125. package/bin/chunk-xsfdp6et.js.map +577 -0
  126. package/bin/chunk-xt7ap9fb.js.map +10 -0
  127. package/bin/chunk-xya5qk3h.js.map +16 -0
  128. package/bin/chunk-yg7w4jgd.js.map +10 -0
  129. package/bin/chunk-yhpv46tb.js.map +20 -0
  130. package/bin/chunk-ymy66kr8.js.map +15 -0
  131. package/bin/chunk-yx4z6xsb.js.map +11 -0
  132. package/bin/chunk-yymwxqpy.js.map +10 -0
  133. package/bin/chunk-z70c75xe.js.map +11 -0
  134. package/bin/chunk-zkqyr3hc.js.map +10 -0
  135. package/bin/index.js.map +12 -0
  136. package/bin/lildax +0 -0
  137. package/package.json +15 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../core/src/database/migration/20260603141458_session_input_inbox.ts"],
4
+ "sourcesContent": [
5
+ "import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260603141458_session_input_inbox\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_input\\` (\n \\`seq\\` integer PRIMARY KEY AUTOINCREMENT,\n \\`id\\` text NOT NULL UNIQUE,\n \\`session_id\\` text NOT NULL,\n \\`prompt\\` text NOT NULL,\n \\`delivery\\` text NOT NULL,\n \\`promoted_seq\\` integer,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_input_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `CREATE INDEX \\`session_input_session_pending_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
6
+ ],
7
+ "mappings": ";wHAGA,SAAe,QACb,GAAI,qCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,geAWb,EACD,MAAO,EAAG,IACR,8GACF,EACD,EAEL",
8
+ "debugId": "1754106B7D18857464756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["src/commands/handlers/service/restart.ts"],
4
+ "sourcesContent": [
5
+ "import { EOL } from \"os\"\nimport * as Effect from \"effect/Effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { Daemon } from \"../../../services/daemon\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.restart,\n Effect.fn(\"cli.service.restart\")(function* () {\n const daemon = yield* Daemon.Service\n yield* daemon.stop()\n process.stdout.write((yield* daemon.start()) + EOL)\n }),\n)\n"
6
+ ],
7
+ "mappings": ";uLAAA,mBAAS,gBAMT,SAAe,IAAQ,QACrB,EAAS,SAAS,QAAQ,SAAS,QAC5B,EAAG,qBAAqB,EAAE,SAAU,EAAG,CAC5C,IAAM,EAAS,MAAO,EAAO,QAC7B,MAAO,EAAO,KAAK,EACnB,QAAQ,OAAO,OAAO,MAAO,EAAO,MAAM,GAAK,CAAG,EACnD,CACH",
8
+ "debugId": "CF6142701B61E62C64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../core/src/database/migration/20260427172553_slow_nightmare.ts"],
4
+ "sourcesContent": [
5
+ "import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260427172553_slow_nightmare\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_message\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_session_message_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_entry_session_idx\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_entry_session_type_idx\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_entry_time_created_idx\\`;`)\n yield* tx.run(`CREATE INDEX \\`session_message_session_idx\\` ON \\`session_message\\` (\\`session_id\\`);`)\n yield* tx.run(\n `CREATE INDEX \\`session_message_session_type_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`type\\`);`,\n )\n yield* tx.run(`CREATE INDEX \\`session_message_time_created_idx\\` ON \\`session_message\\` (\\`time_created\\`);`)\n yield* tx.run(`DROP TABLE \\`session_entry\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
6
+ ],
7
+ "mappings": ";wHAGA,SAAe,QACb,GAAI,gCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,+aAUb,EACD,MAAO,EAAG,IAAI,mDAAqD,EACnE,MAAO,EAAG,IAAI,wDAA0D,EACxE,MAAO,EAAG,IAAI,wDAA0D,EACxE,MAAO,EAAG,IAAI,iFAAuF,EACrG,MAAO,EAAG,IACR,6FACF,EACA,MAAO,EAAG,IAAI,wFAA8F,EAC5G,MAAO,EAAG,IAAI,6BAA+B,EAC9C,EAEL",
8
+ "debugId": "3AEA2F59CF453E6C64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "C504E00020F18E2764756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../node_modules/.bun/aws4fetch@1.0.20/node_modules/aws4fetch/dist/aws4fetch.esm.mjs"],
4
+ "sourcesContent": [
5
+ "/**\n * @license MIT <https://opensource.org/licenses/MIT>\n * @copyright Michael Hart 2024\n */\nconst encoder = new TextEncoder();\nconst HOST_SERVICES = {\n appstream2: 'appstream',\n cloudhsmv2: 'cloudhsm',\n email: 'ses',\n marketplace: 'aws-marketplace',\n mobile: 'AWSMobileHubService',\n pinpoint: 'mobiletargeting',\n queue: 'sqs',\n 'git-codecommit': 'codecommit',\n 'mturk-requester-sandbox': 'mturk-requester',\n 'personalize-runtime': 'personalize',\n};\nconst UNSIGNABLE_HEADERS = new Set([\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n 'presigned-expires',\n 'expect',\n 'x-amzn-trace-id',\n 'range',\n 'connection',\n]);\nclass AwsClient {\n constructor({ accessKeyId, secretAccessKey, sessionToken, service, region, cache, retries, initRetryMs }) {\n if (accessKeyId == null) throw new TypeError('accessKeyId is a required option')\n if (secretAccessKey == null) throw new TypeError('secretAccessKey is a required option')\n this.accessKeyId = accessKeyId;\n this.secretAccessKey = secretAccessKey;\n this.sessionToken = sessionToken;\n this.service = service;\n this.region = region;\n this.cache = cache || new Map();\n this.retries = retries != null ? retries : 10;\n this.initRetryMs = initRetryMs || 50;\n }\n async sign(input, init) {\n if (input instanceof Request) {\n const { method, url, headers, body } = input;\n init = Object.assign({ method, url, headers }, init);\n if (init.body == null && headers.has('Content-Type')) {\n init.body = body != null && headers.has('X-Amz-Content-Sha256') ? body : await input.clone().arrayBuffer();\n }\n input = url;\n }\n const signer = new AwsV4Signer(Object.assign({ url: input.toString() }, init, this, init && init.aws));\n const signed = Object.assign({}, init, await signer.sign());\n delete signed.aws;\n try {\n return new Request(signed.url.toString(), signed)\n } catch (e) {\n if (e instanceof TypeError) {\n return new Request(signed.url.toString(), Object.assign({ duplex: 'half' }, signed))\n }\n throw e\n }\n }\n async fetch(input, init) {\n for (let i = 0; i <= this.retries; i++) {\n const fetched = fetch(await this.sign(input, init));\n if (i === this.retries) {\n return fetched\n }\n const res = await fetched;\n if (res.status < 500 && res.status !== 429) {\n return res\n }\n await new Promise(resolve => setTimeout(resolve, Math.random() * this.initRetryMs * Math.pow(2, i)));\n }\n throw new Error('An unknown error occurred, ensure retries is not negative')\n }\n}\nclass AwsV4Signer {\n constructor({ method, url, headers, body, accessKeyId, secretAccessKey, sessionToken, service, region, cache, datetime, signQuery, appendSessionToken, allHeaders, singleEncode }) {\n if (url == null) throw new TypeError('url is a required option')\n if (accessKeyId == null) throw new TypeError('accessKeyId is a required option')\n if (secretAccessKey == null) throw new TypeError('secretAccessKey is a required option')\n this.method = method || (body ? 'POST' : 'GET');\n this.url = new URL(url);\n this.headers = new Headers(headers || {});\n this.body = body;\n this.accessKeyId = accessKeyId;\n this.secretAccessKey = secretAccessKey;\n this.sessionToken = sessionToken;\n let guessedService, guessedRegion;\n if (!service || !region) {\n[guessedService, guessedRegion] = guessServiceRegion(this.url, this.headers);\n }\n this.service = service || guessedService || '';\n this.region = region || guessedRegion || 'us-east-1';\n this.cache = cache || new Map();\n this.datetime = datetime || new Date().toISOString().replace(/[:-]|\\.\\d{3}/g, '');\n this.signQuery = signQuery;\n this.appendSessionToken = appendSessionToken || this.service === 'iotdevicegateway';\n this.headers.delete('Host');\n if (this.service === 's3' && !this.signQuery && !this.headers.has('X-Amz-Content-Sha256')) {\n this.headers.set('X-Amz-Content-Sha256', 'UNSIGNED-PAYLOAD');\n }\n const params = this.signQuery ? this.url.searchParams : this.headers;\n params.set('X-Amz-Date', this.datetime);\n if (this.sessionToken && !this.appendSessionToken) {\n params.set('X-Amz-Security-Token', this.sessionToken);\n }\n this.signableHeaders = ['host', ...this.headers.keys()]\n .filter(header => allHeaders || !UNSIGNABLE_HEADERS.has(header))\n .sort();\n this.signedHeaders = this.signableHeaders.join(';');\n this.canonicalHeaders = this.signableHeaders\n .map(header => header + ':' + (header === 'host' ? this.url.host : (this.headers.get(header) || '').replace(/\\s+/g, ' ')))\n .join('\\n');\n this.credentialString = [this.datetime.slice(0, 8), this.region, this.service, 'aws4_request'].join('/');\n if (this.signQuery) {\n if (this.service === 's3' && !params.has('X-Amz-Expires')) {\n params.set('X-Amz-Expires', '86400');\n }\n params.set('X-Amz-Algorithm', 'AWS4-HMAC-SHA256');\n params.set('X-Amz-Credential', this.accessKeyId + '/' + this.credentialString);\n params.set('X-Amz-SignedHeaders', this.signedHeaders);\n }\n if (this.service === 's3') {\n try {\n this.encodedPath = decodeURIComponent(this.url.pathname.replace(/\\+/g, ' '));\n } catch (e) {\n this.encodedPath = this.url.pathname;\n }\n } else {\n this.encodedPath = this.url.pathname.replace(/\\/+/g, '/');\n }\n if (!singleEncode) {\n this.encodedPath = encodeURIComponent(this.encodedPath).replace(/%2F/g, '/');\n }\n this.encodedPath = encodeRfc3986(this.encodedPath);\n const seenKeys = new Set();\n this.encodedSearch = [...this.url.searchParams]\n .filter(([k]) => {\n if (!k) return false\n if (this.service === 's3') {\n if (seenKeys.has(k)) return false\n seenKeys.add(k);\n }\n return true\n })\n .map(pair => pair.map(p => encodeRfc3986(encodeURIComponent(p))))\n .sort(([k1, v1], [k2, v2]) => k1 < k2 ? -1 : k1 > k2 ? 1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0)\n .map(pair => pair.join('='))\n .join('&');\n }\n async sign() {\n if (this.signQuery) {\n this.url.searchParams.set('X-Amz-Signature', await this.signature());\n if (this.sessionToken && this.appendSessionToken) {\n this.url.searchParams.set('X-Amz-Security-Token', this.sessionToken);\n }\n } else {\n this.headers.set('Authorization', await this.authHeader());\n }\n return {\n method: this.method,\n url: this.url,\n headers: this.headers,\n body: this.body,\n }\n }\n async authHeader() {\n return [\n 'AWS4-HMAC-SHA256 Credential=' + this.accessKeyId + '/' + this.credentialString,\n 'SignedHeaders=' + this.signedHeaders,\n 'Signature=' + (await this.signature()),\n ].join(', ')\n }\n async signature() {\n const date = this.datetime.slice(0, 8);\n const cacheKey = [this.secretAccessKey, date, this.region, this.service].join();\n let kCredentials = this.cache.get(cacheKey);\n if (!kCredentials) {\n const kDate = await hmac('AWS4' + this.secretAccessKey, date);\n const kRegion = await hmac(kDate, this.region);\n const kService = await hmac(kRegion, this.service);\n kCredentials = await hmac(kService, 'aws4_request');\n this.cache.set(cacheKey, kCredentials);\n }\n return buf2hex(await hmac(kCredentials, await this.stringToSign()))\n }\n async stringToSign() {\n return [\n 'AWS4-HMAC-SHA256',\n this.datetime,\n this.credentialString,\n buf2hex(await hash(await this.canonicalString())),\n ].join('\\n')\n }\n async canonicalString() {\n return [\n this.method.toUpperCase(),\n this.encodedPath,\n this.encodedSearch,\n this.canonicalHeaders + '\\n',\n this.signedHeaders,\n await this.hexBodyHash(),\n ].join('\\n')\n }\n async hexBodyHash() {\n let hashHeader = this.headers.get('X-Amz-Content-Sha256') || (this.service === 's3' && this.signQuery ? 'UNSIGNED-PAYLOAD' : null);\n if (hashHeader == null) {\n if (this.body && typeof this.body !== 'string' && !('byteLength' in this.body)) {\n throw new Error('body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header')\n }\n hashHeader = buf2hex(await hash(this.body || ''));\n }\n return hashHeader\n }\n}\nasync function hmac(key, string) {\n const cryptoKey = await crypto.subtle.importKey(\n 'raw',\n typeof key === 'string' ? encoder.encode(key) : key,\n { name: 'HMAC', hash: { name: 'SHA-256' } },\n false,\n ['sign'],\n );\n return crypto.subtle.sign('HMAC', cryptoKey, encoder.encode(string))\n}\nasync function hash(content) {\n return crypto.subtle.digest('SHA-256', typeof content === 'string' ? encoder.encode(content) : content)\n}\nconst HEX_CHARS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\nfunction buf2hex(arrayBuffer) {\n const buffer = new Uint8Array(arrayBuffer);\n let out = '';\n for (let idx = 0; idx < buffer.length; idx++) {\n const n = buffer[idx];\n out += HEX_CHARS[(n >>> 4) & 0xF];\n out += HEX_CHARS[n & 0xF];\n }\n return out\n}\nfunction encodeRfc3986(urlEncodedStr) {\n return urlEncodedStr.replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase())\n}\nfunction guessServiceRegion(url, headers) {\n const { hostname, pathname } = url;\n if (hostname.endsWith('.on.aws')) {\n const match = hostname.match(/^[^.]{1,63}\\.lambda-url\\.([^.]{1,63})\\.on\\.aws$/);\n return match != null ? ['lambda', match[1] || ''] : ['', '']\n }\n if (hostname.endsWith('.r2.cloudflarestorage.com')) {\n return ['s3', 'auto']\n }\n if (hostname.endsWith('.backblazeb2.com')) {\n const match = hostname.match(/^(?:[^.]{1,63}\\.)?s3\\.([^.]{1,63})\\.backblazeb2\\.com$/);\n return match != null ? ['s3', match[1] || ''] : ['', '']\n }\n const match = hostname.replace('dualstack.', '').match(/([^.]{1,63})\\.(?:([^.]{0,63})\\.)?amazonaws\\.com(?:\\.cn)?$/);\n let service = (match && match[1]) || '';\n let region = match && match[2];\n if (region === 'us-gov') {\n region = 'us-gov-west-1';\n } else if (region === 's3' || region === 's3-accelerate') {\n region = 'us-east-1';\n service = 's3';\n } else if (service === 'iot') {\n if (hostname.startsWith('iot.')) {\n service = 'execute-api';\n } else if (hostname.startsWith('data.jobs.iot.')) {\n service = 'iot-jobs-data';\n } else {\n service = pathname === '/mqtt' ? 'iotdevicegateway' : 'iotdata';\n }\n } else if (service === 'autoscaling') {\n const targetPrefix = (headers.get('X-Amz-Target') || '').split('.')[0];\n if (targetPrefix === 'AnyScaleFrontendService') {\n service = 'application-autoscaling';\n } else if (targetPrefix === 'AnyScaleScalingPlannerFrontendService') {\n service = 'autoscaling-plans';\n }\n } else if (region == null && service.startsWith('s3-')) {\n region = service.slice(3).replace(/^fips-|^external-1/, '');\n service = 's3';\n } else if (service.endsWith('-fips')) {\n service = service.slice(0, -5);\n } else if (region && /-\\d$/.test(service) && !/-\\d$/.test(region)) {\n[service, region] = [region, service];\n }\n return [HOST_SERVICES[service] || service, region || '']\n}\n\nexport { AwsClient, AwsV4Signer };\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "3736F961523F5C5264756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "017D4E49F679C77264756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../node_modules/.bun/bun-pty@0.4.8/node_modules/bun-pty/src/terminal.ts", "../../node_modules/.bun/bun-pty@0.4.8/node_modules/bun-pty/src/interfaces.ts", "../../node_modules/.bun/bun-pty@0.4.8/node_modules/bun-pty/src/index.ts", "../core/src/pty/pty.bun.ts"],
4
+ "sourcesContent": [
5
+ "// terminal.ts — JS/TS front-end (final fixed version)\n\nimport { dlopen, FFIType, ptr } from \"bun:ffi\";\nimport { Buffer } from \"node:buffer\";\nimport { EventEmitter } from \"./interfaces\";\nimport type { IPty, IPtyForkOptions, IExitEvent } from \"./interfaces\";\nimport { join, dirname, basename } from \"node:path\";\nimport { existsSync } from \"node:fs\";\n\nexport const DEFAULT_COLS = 80;\nexport const DEFAULT_ROWS = 24;\nexport const DEFAULT_FILE = \"sh\";\nexport const DEFAULT_NAME = \"xterm\";\n\n/**\n * Quote a string for shell-words compatible splitting on the Rust side.\n * We are not invoking a shell; quoting is only to preserve token boundaries\n * when Rust parses the command line with shell_words::split.\n * \n * @param s - The string to quote\n * @returns The quoted string\n */\nfunction shQuote(s: string): string {\n\tif (s.length === 0) return \"''\";\n\t// Replace ' with '\\'' (close-quote, escaped ', reopen)\n\treturn `'${s.replace(/'/g, `'\\\\''`)}'`;\n}\n\n// terminal.ts – loader fragment only\n\nfunction resolveLibPath(): string {\n\tconst env = process.env.BUN_PTY_LIB;\n\tif (env && existsSync(env)) return env;\n\n\t// For bun compile: use statically analyzable require with inline ternary.\n\t// Bun evaluates process.platform and process.arch at compile time and only\n\t// bundles the file for the target platform. The ternary MUST be inline\n\t// in the template literal for Bun's static analysis to work.\n\t// See: https://github.com/sursaone/bun-pty/issues/19\n\ttry {\n\t\t// @ts-ignore - require returns path for binary files in Bun\n\t\tconst embeddedPath = require(`../rust-pty/target/release/${process.platform === \"win32\" ? \"rust_pty.dll\" : process.platform === \"darwin\" ? (process.arch === \"arm64\" ? \"librust_pty_arm64.dylib\" : \"librust_pty.dylib\") : process.arch === \"arm64\" ? \"librust_pty_arm64.so\" : \"librust_pty.so\"}`);\n\t\tif (embeddedPath) return embeddedPath;\n\t} catch {\n\t\t// Not running as compiled binary, fall through to dynamic resolution\n\t}\n\n\t// Fallback: dynamic resolution for development scenarios\n\tconst platform = process.platform;\n\tconst arch = process.arch;\n\n\t// Try both architecture-specific and generic filenames\n\tconst filenames =\n\t\tplatform === \"darwin\"\n\t\t\t? arch === \"arm64\"\n\t\t\t\t? [\"librust_pty_arm64.dylib\", \"librust_pty.dylib\"]\n\t\t\t\t: [\"librust_pty.dylib\"]\n\t\t\t: platform === \"win32\"\n\t\t\t? [\"rust_pty.dll\"]\n\t\t\t: arch === \"arm64\"\n\t\t\t? [\"librust_pty_arm64.so\", \"librust_pty.so\"]\n\t\t\t: [\"librust_pty.so\"];\n\n\t// Start from the current module's location\n\tconst base = Bun.fileURLToPath(import.meta.url);\n\tconst fileDir = dirname(base);\n\tconst dirName = basename(fileDir);\n\t\n\t// Handle both development (src/terminal.ts) and production (dist/terminal.js) cases\n\t// If we're in src/ or dist/, go up one level to get the project root\n\tconst here = (dirName === \"src\" || dirName === \"dist\")\n\t\t? dirname(fileDir) // Go up one level from src/ or dist/\n\t\t: fileDir; // Otherwise use the directory as-is\n\n\tconst basePaths = [\n\t\tjoin(here, \"rust-pty\", \"target\", \"release\"), // Direct path from project root\n\t\tjoin(here, \"..\", \"bun-pty\", \"rust-pty\", \"target\", \"release\"), // monorepo setups\n\t\tjoin(process.cwd(), \"node_modules\", \"bun-pty\", \"rust-pty\", \"target\", \"release\"),\n\t];\n\n\tconst fallbackPaths = [];\n\tfor (const basePath of basePaths) {\n\t\tfor (const filename of filenames) {\n\t\t\tfallbackPaths.push(join(basePath, filename));\n\t\t}\n\t}\n\n\tfor (const path of fallbackPaths) {\n\t\tif (existsSync(path)) return path;\n\t}\n\n\tthrow new Error(\n\t\t`librust_pty shared library not found.\\nChecked:\\n - BUN_PTY_LIB=${env ?? \"<unset>\"}\\n - ${fallbackPaths.join(\"\\n - \")}\\n\\nSet BUN_PTY_LIB or ensure one of these paths contains the file.`\n\t);\n}\n\nconst libPath = resolveLibPath();\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\nlet lib: any;\n\n// try to load the lib, if it fails log the error\ntry {\n\tlib = dlopen(libPath, {\n\t\tbun_pty_spawn: {\n\t\t\targs: [FFIType.cstring, FFIType.cstring, FFIType.cstring, FFIType.i32, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_write: {\n\t\t\targs: [FFIType.i32, FFIType.pointer, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_read: {\n\t\t\targs: [FFIType.i32, FFIType.pointer, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_resize: {\n\t\t\targs: [FFIType.i32, FFIType.i32, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_kill: { args: [FFIType.i32], returns: FFIType.i32 },\n\t\tbun_pty_get_pid: { args: [FFIType.i32], returns: FFIType.i32 },\n\t\tbun_pty_get_exit_code: { args: [FFIType.i32], returns: FFIType.i32 },\n\t\tbun_pty_close: { args: [FFIType.i32], returns: FFIType.void },\n\t});\n} catch (error) {\n\tconsole.error(\"Failed to load lib\", error);\n}\n\nexport class Terminal implements IPty {\n\tprivate handle = -1;\n\tprivate _pid = -1;\n\tprivate _cols = DEFAULT_COLS;\n\tprivate _rows = DEFAULT_ROWS;\n\tprivate readonly _name = DEFAULT_NAME;\n\n\tprivate _readLoop = false;\n\tprivate _closing = false;\n\n\t// TextDecoder with streaming mode to properly handle UTF-8 across chunk boundaries\n\t// Without this, multi-byte characters (like box-drawing ─) that span chunks become �\n\tprivate readonly _decoder = new TextDecoder(\"utf-8\");\n\n\tprivate readonly _onData = new EventEmitter<string>();\n\tprivate readonly _onExit = new EventEmitter<IExitEvent>();\n\n\tconstructor(\n\t\tfile = DEFAULT_FILE,\n\t\targs: string[] = [],\n\t\topts: IPtyForkOptions = { name: DEFAULT_NAME },\n\t) {\n\t\tthis._cols = opts.cols ?? DEFAULT_COLS;\n\t\tthis._rows = opts.rows ?? DEFAULT_ROWS;\n\t\tconst cwd = opts.cwd ?? process.cwd();\n\t\t// Properly quote file and arguments to preserve spaces and special characters\n\t\tconst cmdline = [shQuote(file), ...args.map(shQuote)].join(\" \");\n\n\t\t// Format environment variables as null-terminated string\n\t\tlet envStr = \"\";\n\t\tif (opts.env) {\n\t\t\tconst envPairs = Object.entries(opts.env).map(([k, v]) => `${k}=${v}`);\n\t\t\tenvStr = envPairs.join(\"\\0\") + \"\\0\";\n\t\t}\n\n\t\tthis.handle = lib.symbols.bun_pty_spawn(\n\t\t\tBuffer.from(`${cmdline}\\0`, \"utf8\"),\n\t\t\tBuffer.from(`${cwd}\\0`, \"utf8\"),\n\t\t\tBuffer.from(`${envStr}\\0`, \"utf8\"),\n\t\t\tthis._cols,\n\t\t\tthis._rows,\n\t\t);\n\t\tif (this.handle < 0) throw new Error(\"PTY spawn failed\");\n\n\t\tthis._pid = lib.symbols.bun_pty_get_pid(this.handle);\n\t\tthis._startReadLoop();\n\t}\n\n\t/* ------------- accessors ------------- */\n\n\tget pid() {\n\t\treturn this._pid;\n\t}\n\tget cols() {\n\t\treturn this._cols;\n\t}\n\tget rows() {\n\t\treturn this._rows;\n\t}\n\tget process() {\n\t\treturn \"shell\";\n\t}\n\n\tget onData() {\n\t\treturn this._onData.event;\n\t}\n\tget onExit() {\n\t\treturn this._onExit.event;\n\t}\n\n\t/* ------------- IO methods ------------- */\n\n\twrite(data: string) {\n\t\tif (this._closing) return;\n\t\tconst buf = Buffer.from(data, \"utf8\");\n\t\tlib.symbols.bun_pty_write(this.handle, ptr(buf), buf.length);\n\t}\n\n\tresize(cols: number, rows: number) {\n\t\tif (this._closing) return;\n\t\tthis._cols = cols;\n\t\tthis._rows = rows;\n\t\tlib.symbols.bun_pty_resize(this.handle, cols, rows);\n\t}\n\n\tkill(signal = \"SIGTERM\") {\n\t\tif (this._closing) return;\n\t\tthis._closing = true;\n\t\tlib.symbols.bun_pty_kill(this.handle);\n\t\tlib.symbols.bun_pty_close(this.handle);\n\t\tthis._onExit.fire({ exitCode: 0, signal });\n\t}\n\n\t/* ------------- read-loop ------------- */\n\n\tprivate async _startReadLoop() {\n\t\tif (this._readLoop) return;\n\t\tthis._readLoop = true;\n\n\t\tconst buf = Buffer.allocUnsafe(4096);\n\n\t\twhile (this._readLoop && !this._closing) {\n\t\t\tconst n = lib.symbols.bun_pty_read(this.handle, ptr(buf), buf.length);\n\t\t\tif (n > 0) {\n\t\t\t\t// Use streaming mode to buffer incomplete UTF-8 sequences across chunks\n\t\t\t\t// This prevents corruption when multi-byte chars span chunk boundaries\n\t\t\t\tconst decoded = this._decoder.decode(buf.subarray(0, n), { stream: true });\n\t\t\t\tif (decoded) {\n\t\t\t\t\tthis._onData.fire(decoded);\n\t\t\t\t}\n\t\t\t} else if (n === -2) {\n\t\t\t\t// CHILD_EXITED - flush any remaining bytes in the decoder\n\t\t\t\tconst remaining = this._decoder.decode();\n\t\t\t\tif (remaining) {\n\t\t\t\t\tthis._onData.fire(remaining);\n\t\t\t\t}\n\t\t\t\tconst exitCode = lib.symbols.bun_pty_get_exit_code(this.handle);\n\t\t\t\tthis._onExit.fire({ exitCode });\n\t\t\t\tbreak;\n\t\t\t} else if (n < 0) {\n\t\t\t\t// error - flush decoder before breaking\n\t\t\t\tconst remaining = this._decoder.decode();\n\t\t\t\tif (remaining) {\n\t\t\t\t\tthis._onData.fire(remaining);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\t// 0 bytes: wait\n\t\t\t\tawait new Promise((r) => setTimeout(r, 8));\n\t\t\t}\n\t\t}\n\t}\n}\n",
6
+ "import { Buffer } from \"node:buffer\";\n\n/**\n * Interface for disposable resources.\n */\nexport interface IDisposable {\n /**\n * Disposes the resource, performing any necessary cleanup.\n */\n dispose(): void;\n}\n\n/**\n * Event implementation for the terminal.\n */\nexport class EventEmitter<T> {\n private listeners: ((data: T) => void)[] = [];\n\n public event = (listener: (e: T) => void): IDisposable => {\n this.listeners.push(listener);\n return {\n dispose: () => {\n const i = this.listeners.indexOf(listener);\n if (i !== -1) {\n this.listeners.splice(i, 1);\n }\n }\n };\n };\n\n public fire(data: T): void {\n for (const listener of this.listeners) {\n listener(data);\n }\n }\n}\n\n/**\n * Options for spawning a new PTY process.\n */\nexport interface IPtyForkOptions {\n /**\n * The name of the terminal to be set in environment variables.\n */\n name: string;\n\n /**\n * The number of columns in the PTY.\n */\n cols?: number;\n\n /**\n * The number of rows in the PTY.\n */\n rows?: number;\n\n /**\n * The current working directory of the process.\n * Defaults to the current working directory of the parent process.\n */\n cwd?: string;\n\n /**\n * Environment variables to set for the process.\n */\n env?: Record<string, string>;\n}\n\n/**\n * Exit data for PTY process.\n */\nexport interface IExitEvent {\n /**\n * The process exit code.\n */\n exitCode: number;\n\n /**\n * The signal that caused the process to exit, if any.\n */\n signal?: number | string;\n}\n\n/**\n * Interface for interacting with a pseudo-terminal (PTY) instance.\n */\nexport interface IPty {\n /**\n * The PID of the process running in the PTY.\n */\n readonly pid: number;\n\n /**\n * The column size in characters.\n */\n readonly cols: number;\n\n /**\n * The row size in characters.\n */\n readonly rows: number;\n\n /**\n * The title of the active process.\n */\n readonly process: string;\n\n /**\n * Set a callback for when data is received from the PTY.\n */\n readonly onData: (listener: (data: string) => void) => IDisposable;\n\n /**\n * Event emitted when the PTY process exits.\n */\n readonly onExit: (listener: (event: IExitEvent) => void) => IDisposable;\n\n /**\n * Write data to the PTY.\n *\n * @param data - The data to write.\n */\n write(data: string): void;\n\n /**\n * Resize the PTY.\n *\n * @param columns - Number of columns (character width).\n * @param rows - Number of rows (character height).\n */\n resize(columns: number, rows: number): void;\n\n /**\n * Kill the process running in the PTY.\n *\n * @param signal - The signal to send to the process.\n * Defaults to \"SIGTERM\".\n */\n kill(signal?: string): void;\n} ",
7
+ "/**\n * The main export module for bun-pty.\n * Provides a cross-platform PTY interface for Bun runtime.\n */\n\nimport { Terminal } from './terminal';\nimport type { IPty, IPtyForkOptions, IExitEvent, IDisposable } from './interfaces';\n\n/**\n * Creates and spawns a new PTY with the given command and arguments.\n * \n * @param file - Path to the executable to run.\n * @param args - Arguments for the executable.\n * @param options - Options for the PTY.\n * @returns A new PTY instance.\n */\nexport function spawn(file: string, args: string[], options: IPtyForkOptions): IPty {\n return new Terminal(file, args, options);\n}\n\n// Export interfaces and implementations\nexport type { IPty, IPtyForkOptions, IExitEvent, IDisposable };\nexport { Terminal } from './terminal'; ",
8
+ "import { spawn as create } from \"bun-pty\"\nimport type { Opts, Proc } from \"./pty\"\n\nexport type { Disp, Exit, Opts, Proc } from \"./pty\"\n\nexport function spawn(file: string, args: string[], opts: Opts): Proc {\n const pty = create(file, args, opts)\n return {\n pid: pty.pid,\n onData(listener) {\n return pty.onData(listener)\n },\n onExit(listener) {\n return pty.onExit(listener)\n },\n write(data) {\n pty.write(data)\n },\n resize(cols, rows) {\n pty.resize(cols, rows)\n },\n kill(signal) {\n pty.kill(signal)\n },\n }\n}\n"
9
+ ],
10
+ "mappings": "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",
11
+ "debugId": "0537F0C0CAEDB0A164756E2164756E21",
12
+ "names": []
13
+ }