@psnext/slingcli 2.4.20260506-3 → 2.4.20260507-1

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 (30) hide show
  1. package/bin/sling.js +1 -1
  2. package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +2 -2
  3. package/node_modules/@aws-sdk/token-providers/package.json +1 -1
  4. package/node_modules/@mariozechner/pi-ai/dist/models.generated.js +31 -99
  5. package/node_modules/koffi/CHANGELOG.md +6 -0
  6. package/node_modules/koffi/build/koffi/darwin_arm64/koffi.node +0 -0
  7. package/node_modules/koffi/build/koffi/darwin_x64/koffi.node +0 -0
  8. package/node_modules/koffi/build/koffi/freebsd_arm64/koffi.node +0 -0
  9. package/node_modules/koffi/build/koffi/freebsd_ia32/koffi.node +0 -0
  10. package/node_modules/koffi/build/koffi/freebsd_x64/koffi.node +0 -0
  11. package/node_modules/koffi/build/koffi/linux_arm64/koffi.node +0 -0
  12. package/node_modules/koffi/build/koffi/linux_armhf/koffi.node +0 -0
  13. package/node_modules/koffi/build/koffi/linux_ia32/koffi.node +0 -0
  14. package/node_modules/koffi/build/koffi/linux_loong64/koffi.node +0 -0
  15. package/node_modules/koffi/build/koffi/linux_riscv64d/koffi.node +0 -0
  16. package/node_modules/koffi/build/koffi/linux_x64/koffi.node +0 -0
  17. package/node_modules/koffi/build/koffi/musl_arm64/koffi.node +0 -0
  18. package/node_modules/koffi/build/koffi/musl_x64/koffi.node +0 -0
  19. package/node_modules/koffi/build/koffi/openbsd_ia32/koffi.node +0 -0
  20. package/node_modules/koffi/build/koffi/openbsd_x64/koffi.node +0 -0
  21. package/node_modules/koffi/build/koffi/win32_arm64/koffi.node +0 -0
  22. package/node_modules/koffi/build/koffi/win32_ia32/koffi.node +0 -0
  23. package/node_modules/koffi/build/koffi/win32_x64/koffi.node +0 -0
  24. package/node_modules/koffi/index.js +1 -1
  25. package/node_modules/koffi/indirect.js +1 -1
  26. package/node_modules/koffi/package.json +1 -1
  27. package/node_modules/koffi/src/koffi/src/call.cc +13 -5
  28. package/package.json +2 -2
  29. package/sling-default-packages.json +3 -2
  30. package/slingshot/index.js +3 -3
package/bin/sling.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  process.title = "sling";
3
3
 
4
- const SLING_VERSION = "2.4.20260506-3";
4
+ const SLING_VERSION = "2.4.20260507-1";
5
5
 
6
6
  import { setBedrockProviderModule } from "@mariozechner/pi-ai";
7
7
  import { bedrockProviderModule } from "@mariozechner/pi-ai/bedrock-provider";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-bedrock-runtime",
3
3
  "description": "AWS SDK for JavaScript Bedrock Runtime Client for Node.js, Browser and React Native",
4
- "version": "3.1043.0",
4
+ "version": "3.1044.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-bedrock-runtime",
@@ -39,7 +39,7 @@
39
39
  "@aws-sdk/middleware-user-agent": "^3.972.38",
40
40
  "@aws-sdk/middleware-websocket": "^3.972.16",
41
41
  "@aws-sdk/region-config-resolver": "^3.972.13",
42
- "@aws-sdk/token-providers": "3.1043.0",
42
+ "@aws-sdk/token-providers": "3.1044.0",
43
43
  "@aws-sdk/types": "^3.973.8",
44
44
  "@aws-sdk/util-endpoints": "^3.996.8",
45
45
  "@aws-sdk/util-user-agent-browser": "^3.972.10",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/token-providers",
3
- "version": "3.1043.0",
3
+ "version": "3.1044.0",
4
4
  "description": "A collection of token providers",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -7601,9 +7601,9 @@ export const MODELS = {
7601
7601
  "big-pickle": {
7602
7602
  id: "big-pickle",
7603
7603
  name: "Big Pickle",
7604
- api: "anthropic-messages",
7604
+ api: "openai-completions",
7605
7605
  provider: "opencode",
7606
- baseUrl: "https://opencode.ai/zen",
7606
+ baseUrl: "https://opencode.ai/zen/v1",
7607
7607
  reasoning: true,
7608
7608
  input: ["text"],
7609
7609
  cost: {
@@ -7869,9 +7869,9 @@ export const MODELS = {
7869
7869
  thinkingLevelMap: { "off": null },
7870
7870
  input: ["text", "image"],
7871
7871
  cost: {
7872
- input: 0,
7873
- output: 0,
7874
- cacheRead: 0,
7872
+ input: 0.05,
7873
+ output: 0.4,
7874
+ cacheRead: 0.005,
7875
7875
  cacheWrite: 0,
7876
7876
  },
7877
7877
  contextWindow: 400000,
@@ -8372,40 +8372,6 @@ export const MODELS = {
8372
8372
  contextWindow: 262144,
8373
8373
  maxTokens: 65536,
8374
8374
  },
8375
- "mimo-v2-omni": {
8376
- id: "mimo-v2-omni",
8377
- name: "MiMo V2 Omni",
8378
- api: "openai-completions",
8379
- provider: "opencode-go",
8380
- baseUrl: "https://opencode.ai/zen/go/v1",
8381
- reasoning: true,
8382
- input: ["text", "image"],
8383
- cost: {
8384
- input: 0.4,
8385
- output: 2,
8386
- cacheRead: 0.08,
8387
- cacheWrite: 0,
8388
- },
8389
- contextWindow: 262144,
8390
- maxTokens: 128000,
8391
- },
8392
- "mimo-v2-pro": {
8393
- id: "mimo-v2-pro",
8394
- name: "MiMo V2 Pro",
8395
- api: "openai-completions",
8396
- provider: "opencode-go",
8397
- baseUrl: "https://opencode.ai/zen/go/v1",
8398
- reasoning: true,
8399
- input: ["text"],
8400
- cost: {
8401
- input: 1,
8402
- output: 3,
8403
- cacheRead: 0.2,
8404
- cacheWrite: 0,
8405
- },
8406
- contextWindow: 1048576,
8407
- maxTokens: 128000,
8408
- },
8409
8375
  "mimo-v2.5": {
8410
8376
  id: "mimo-v2.5",
8411
8377
  name: "MiMo V2.5",
@@ -8546,23 +8512,6 @@ export const MODELS = {
8546
8512
  contextWindow: 131072,
8547
8513
  maxTokens: 131072,
8548
8514
  },
8549
- "allenai/olmo-3.1-32b-instruct": {
8550
- id: "allenai/olmo-3.1-32b-instruct",
8551
- name: "AllenAI: Olmo 3.1 32B Instruct",
8552
- api: "openai-completions",
8553
- provider: "openrouter",
8554
- baseUrl: "https://openrouter.ai/api/v1",
8555
- reasoning: false,
8556
- input: ["text"],
8557
- cost: {
8558
- input: 0.19999999999999998,
8559
- output: 0.6,
8560
- cacheRead: 0,
8561
- cacheWrite: 0,
8562
- },
8563
- contextWindow: 65536,
8564
- maxTokens: 16384,
8565
- },
8566
8515
  "amazon/nova-2-lite-v1": {
8567
8516
  id: "amazon/nova-2-lite-v1",
8568
8517
  name: "Amazon: Nova 2 Lite",
@@ -9709,23 +9658,6 @@ export const MODELS = {
9709
9658
  contextWindow: 256000,
9710
9659
  maxTokens: 80000,
9711
9660
  },
9712
- "meta-llama/llama-3-8b-instruct": {
9713
- id: "meta-llama/llama-3-8b-instruct",
9714
- name: "Meta: Llama 3 8B Instruct",
9715
- api: "openai-completions",
9716
- provider: "openrouter",
9717
- baseUrl: "https://openrouter.ai/api/v1",
9718
- reasoning: false,
9719
- input: ["text"],
9720
- cost: {
9721
- input: 0.03,
9722
- output: 0.04,
9723
- cacheRead: 0,
9724
- cacheWrite: 0,
9725
- },
9726
- contextWindow: 8192,
9727
- maxTokens: 16384,
9728
- },
9729
9661
  "meta-llama/llama-3.1-70b-instruct": {
9730
9662
  id: "meta-llama/llama-3.1-70b-instruct",
9731
9663
  name: "Meta: Llama 3.1 70B Instruct",
@@ -12280,13 +12212,13 @@ export const MODELS = {
12280
12212
  reasoning: true,
12281
12213
  input: ["text", "image"],
12282
12214
  cost: {
12283
- input: 0.15,
12215
+ input: 0.14,
12284
12216
  output: 1,
12285
12217
  cacheRead: 0.049999999999999996,
12286
12218
  cacheWrite: 0,
12287
12219
  },
12288
12220
  contextWindow: 262144,
12289
- maxTokens: 262144,
12221
+ maxTokens: 81920,
12290
12222
  },
12291
12223
  "qwen/qwen3.5-397b-a17b": {
12292
12224
  id: "qwen/qwen3.5-397b-a17b",
@@ -16453,8 +16385,8 @@ export const MODELS = {
16453
16385
  cacheRead: 0.01,
16454
16386
  cacheWrite: 0,
16455
16387
  },
16456
- contextWindow: 256000,
16457
- maxTokens: 64000,
16388
+ contextWindow: 262144,
16389
+ maxTokens: 65536,
16458
16390
  },
16459
16391
  "mimo-v2-omni": {
16460
16392
  id: "mimo-v2-omni",
@@ -16470,8 +16402,8 @@ export const MODELS = {
16470
16402
  cacheRead: 0.08,
16471
16403
  cacheWrite: 0,
16472
16404
  },
16473
- contextWindow: 256000,
16474
- maxTokens: 128000,
16405
+ contextWindow: 262144,
16406
+ maxTokens: 131072,
16475
16407
  },
16476
16408
  "mimo-v2-pro": {
16477
16409
  id: "mimo-v2-pro",
@@ -16487,8 +16419,8 @@ export const MODELS = {
16487
16419
  cacheRead: 0.2,
16488
16420
  cacheWrite: 0,
16489
16421
  },
16490
- contextWindow: 1000000,
16491
- maxTokens: 128000,
16422
+ contextWindow: 1048576,
16423
+ maxTokens: 131072,
16492
16424
  },
16493
16425
  "mimo-v2.5": {
16494
16426
  id: "mimo-v2.5",
@@ -16540,8 +16472,8 @@ export const MODELS = {
16540
16472
  cacheRead: 0.01,
16541
16473
  cacheWrite: 0,
16542
16474
  },
16543
- contextWindow: 256000,
16544
- maxTokens: 64000,
16475
+ contextWindow: 262144,
16476
+ maxTokens: 65536,
16545
16477
  },
16546
16478
  "mimo-v2-omni": {
16547
16479
  id: "mimo-v2-omni",
@@ -16557,8 +16489,8 @@ export const MODELS = {
16557
16489
  cacheRead: 0.08,
16558
16490
  cacheWrite: 0,
16559
16491
  },
16560
- contextWindow: 256000,
16561
- maxTokens: 128000,
16492
+ contextWindow: 262144,
16493
+ maxTokens: 131072,
16562
16494
  },
16563
16495
  "mimo-v2-pro": {
16564
16496
  id: "mimo-v2-pro",
@@ -16574,8 +16506,8 @@ export const MODELS = {
16574
16506
  cacheRead: 0.2,
16575
16507
  cacheWrite: 0,
16576
16508
  },
16577
- contextWindow: 1000000,
16578
- maxTokens: 128000,
16509
+ contextWindow: 1048576,
16510
+ maxTokens: 131072,
16579
16511
  },
16580
16512
  "mimo-v2.5": {
16581
16513
  id: "mimo-v2.5",
@@ -16627,8 +16559,8 @@ export const MODELS = {
16627
16559
  cacheRead: 0.01,
16628
16560
  cacheWrite: 0,
16629
16561
  },
16630
- contextWindow: 256000,
16631
- maxTokens: 64000,
16562
+ contextWindow: 262144,
16563
+ maxTokens: 65536,
16632
16564
  },
16633
16565
  "mimo-v2-omni": {
16634
16566
  id: "mimo-v2-omni",
@@ -16644,8 +16576,8 @@ export const MODELS = {
16644
16576
  cacheRead: 0.08,
16645
16577
  cacheWrite: 0,
16646
16578
  },
16647
- contextWindow: 256000,
16648
- maxTokens: 128000,
16579
+ contextWindow: 262144,
16580
+ maxTokens: 131072,
16649
16581
  },
16650
16582
  "mimo-v2-pro": {
16651
16583
  id: "mimo-v2-pro",
@@ -16661,8 +16593,8 @@ export const MODELS = {
16661
16593
  cacheRead: 0.2,
16662
16594
  cacheWrite: 0,
16663
16595
  },
16664
- contextWindow: 1000000,
16665
- maxTokens: 128000,
16596
+ contextWindow: 1048576,
16597
+ maxTokens: 131072,
16666
16598
  },
16667
16599
  "mimo-v2.5": {
16668
16600
  id: "mimo-v2.5",
@@ -16714,8 +16646,8 @@ export const MODELS = {
16714
16646
  cacheRead: 0.01,
16715
16647
  cacheWrite: 0,
16716
16648
  },
16717
- contextWindow: 256000,
16718
- maxTokens: 64000,
16649
+ contextWindow: 262144,
16650
+ maxTokens: 65536,
16719
16651
  },
16720
16652
  "mimo-v2-omni": {
16721
16653
  id: "mimo-v2-omni",
@@ -16731,8 +16663,8 @@ export const MODELS = {
16731
16663
  cacheRead: 0.08,
16732
16664
  cacheWrite: 0,
16733
16665
  },
16734
- contextWindow: 256000,
16735
- maxTokens: 128000,
16666
+ contextWindow: 262144,
16667
+ maxTokens: 131072,
16736
16668
  },
16737
16669
  "mimo-v2-pro": {
16738
16670
  id: "mimo-v2-pro",
@@ -16748,8 +16680,8 @@ export const MODELS = {
16748
16680
  cacheRead: 0.2,
16749
16681
  cacheWrite: 0,
16750
16682
  },
16751
- contextWindow: 1000000,
16752
- maxTokens: 128000,
16683
+ contextWindow: 1048576,
16684
+ maxTokens: 131072,
16753
16685
  },
16754
16686
  "mimo-v2.5": {
16755
16687
  id: "mimo-v2.5",
@@ -7,6 +7,12 @@
7
7
 
8
8
  ### Koffi 2.16
9
9
 
10
+ #### Koffi 2.16.2
11
+
12
+ *Released on 2026-05-06*
13
+
14
+ - Fix string truncation bugs when passing some kinds of long V8 strings (see [Koromix/koffi#266](https://github.com/Koromix/koffi/issues/266))
15
+
10
16
  #### Koffi 2.16.1
11
17
 
12
18
  *Released on 2026-04-17*
@@ -398,7 +398,7 @@ var require_package = __commonJS({
398
398
  "../../bin/Koffi/package/src/koffi/package.json"(exports2, module2) {
399
399
  module2.exports = {
400
400
  name: "koffi",
401
- version: "2.16.1",
401
+ version: "2.16.2",
402
402
  description: "Fast and simple C FFI (foreign function interface) for Node.js",
403
403
  keywords: [
404
404
  "foreign",
@@ -398,7 +398,7 @@ var require_package = __commonJS({
398
398
  "../../bin/Koffi/package/src/koffi/package.json"(exports2, module2) {
399
399
  module2.exports = {
400
400
  name: "koffi",
401
- version: "2.16.1",
401
+ version: "2.16.2",
402
402
  description: "Fast and simple C FFI (foreign function interface) for Node.js",
403
403
  keywords: [
404
404
  "foreign",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koffi",
3
- "version": "2.16.1",
3
+ "version": "2.16.2",
4
4
  "description": "Fast and simple C FFI (foreign function interface) for Node.js",
5
5
  "keywords": [
6
6
  "foreign",
@@ -151,14 +151,22 @@ Size CallData::PushStringValue(Napi::Value value, const char **out_str)
151
151
  napi_status status;
152
152
 
153
153
  buf.ptr = (char *)mem->heap.ptr;
154
- buf.len = std::max((Size)0, mem->heap.len - Kibibytes(32));
154
+ buf.len = mem->heap.len;
155
155
 
156
156
  status = napi_get_value_string_utf8(env, value, buf.ptr, (size_t)buf.len, &len);
157
157
  K_ASSERT(status == napi_ok);
158
158
 
159
159
  len++;
160
160
 
161
- if (len < (size_t)buf.len) [[likely]] {
161
+ // V8 can truncate the string and return a length that is less than the real string
162
+ // length in several cases, such as when it flattens string ropes.
163
+ // This was the cause of a truncation bug (see https://github.com/Koromix/koffi/issues/266),
164
+ // which went unnoticed for a long time.
165
+ // We don't want to query the length beforehand, because it's slow. Instead, check that the
166
+ // returned lengfth is much shorter than the available buffer capacity, and if so, we know
167
+ // we're okay because V8 flattens strings ~32 KiB at a time.
168
+
169
+ if ((Size)len < buf.len - Kibibytes(64)) [[likely]] {
162
170
  mem->heap.ptr += (Size)len;
163
171
  mem->heap.len -= (Size)len;
164
172
  } else {
@@ -186,14 +194,14 @@ Size CallData::PushString16Value(Napi::Value value, const char16_t **out_str16)
186
194
 
187
195
  mem->heap.ptr = AlignUp(mem->heap.ptr, 2);
188
196
  buf.ptr = (char16_t *)mem->heap.ptr;
189
- buf.len = std::max((Size)0, mem->heap.len - Kibibytes(32)) / 2;
197
+ buf.len = mem->heap.len / 2;
190
198
 
191
199
  status = napi_get_value_string_utf16(env, value, buf.ptr, (size_t)buf.len, &len);
192
200
  K_ASSERT(status == napi_ok);
193
201
 
194
202
  len++;
195
203
 
196
- if (len < (size_t)buf.len) [[likely]] {
204
+ if ((Size)len < buf.len - Kibibytes(64) / 2) [[likely]] {
197
205
  mem->heap.ptr += (Size)len * 2;
198
206
  mem->heap.len -= (Size)len * 2;
199
207
  } else {
@@ -226,7 +234,7 @@ Size CallData::PushString32Value(Napi::Value value, const char32_t **out_str32)
226
234
 
227
235
  mem->heap.ptr = AlignUp(mem->heap.ptr, 4);
228
236
  buf.ptr = (char32_t *)mem->heap.ptr;
229
- buf.len = std::max((Size)0, mem->heap.len - Kibibytes(32)) / 4;
237
+ buf.len = mem->heap.len / 4;
230
238
 
231
239
  if (buf16.len < buf.len) [[likely]] {
232
240
  mem->heap.ptr += buf16.len * 4;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@psnext/slingcli",
3
- "version": "2.4.20260506-3",
3
+ "version": "2.4.20260507-1",
4
4
  "description": "Connects Sling CLI to Publicis Sapient Slingshot enterprise LLM gateway. Bundles the pi coding-agent runtime.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -29,7 +29,7 @@
29
29
  "type": "git",
30
30
  "url": "git+https://pscode.lioncloud.net/psaiproducts/slingcli.git"
31
31
  },
32
- "slingVersion": "2.4.20260506-3",
32
+ "slingVersion": "2.4.20260507-1",
33
33
  "dependencies": {
34
34
  "@mariozechner/pi-tui": "file:../.sling-pack/mariozechner-pi-tui-0.73.0.tgz",
35
35
  "@mariozechner/pi-ai": "file:../.sling-pack/mariozechner-pi-ai-0.73.0.tgz",
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "packages": [
3
3
  "npm:pi-subagents",
4
- "npm:pi-ask-user"
4
+ "npm:pi-ask-user",
5
+ "npm:pi-hermes-memory"
5
6
  ],
6
7
  "comment": "List of packages to automatically install on first run. Add more packages to the array as needed."
7
- }
8
+ }
@@ -22,17 +22,17 @@ Log file: ${N}
22
22
  `;q.appendFileSync(N,t)}catch{}}function Se(e,s){if(!(!N||!q))try{let i=`[${new Date().toISOString()}] ${e}:
23
23
  ${JSON.stringify(s,null,2)}
24
24
 
25
- `;q.appendFileSync(N,i)}catch{}}var ae={name:"slingshot.cli",private:!0,type:"module",workspaces:["packages/*","packages/web-ui/example","packages/coding-agent/examples/extensions/with-deps","packages/coding-agent/examples/extensions/custom-provider-anthropic","packages/coding-agent/examples/extensions/custom-provider-gitlab-duo","packages/coding-agent/examples/extensions/custom-provider-qwen-cli"],scripts:{clean:"npm run clean --workspaces",build:"cd packages/tui && npm run build && cd ../ai && npm run build && cd ../agent && npm run build && cd ../coding-agent && npm run build && cd ../mom && npm run build && cd ../web-ui && npm run build && cd ../pods && npm run build",dev:'concurrently --names "ai,agent,coding-agent,mom,web-ui,tui" --prefix-colors "cyan,yellow,red,white,green,magenta" "cd packages/ai && npm run dev" "cd packages/agent && npm run dev" "cd packages/coding-agent && npm run dev" "cd packages/mom && npm run dev" "cd packages/web-ui && npm run dev" "cd packages/tui && npm run dev"',"dev:tsc":'concurrently --names "ai,web-ui" --prefix-colors "cyan,green" "cd packages/ai && npm run dev:tsc" "cd packages/web-ui && npm run dev:tsc"',check:"","check:browser-smoke":"","profile:tui":"node scripts/profile-coding-agent-node.mjs --mode tui","profile:rpc":"node scripts/profile-coding-agent-node.mjs --mode rpc",test:"npm run test --workspaces --if-present","version:patch":"npm version patch -ws --no-git-tag-version && node scripts/sync-versions.js && shx rm -rf node_modules packages/*/node_modules package-lock.json && npm install","version:minor":"npm version minor -ws --no-git-tag-version && node scripts/sync-versions.js && shx rm -rf node_modules packages/*/node_modules package-lock.json && npm install","version:major":"npm version major -ws --no-git-tag-version && node scripts/sync-versions.js && shx rm -rf node_modules packages/*/node_modules package-lock.json && npm install","version:set":"npm version -ws",prepublishOnly:"npm run clean && npm run build && npm run check",publish:"npm run prepublishOnly && npm publish -ws --access public","publish:dry":"npm run prepublishOnly && npm publish -ws --access public --dry-run","release:patch":"node scripts/release.mjs patch","release:minor":"node scripts/release.mjs minor","release:major":"node scripts/release.mjs major",prepare:"husky"},devDependencies:{"@biomejs/biome":"2.3.5","@types/node":"^24.12.2","@typescript/native-preview":"7.0.0-dev.20260120.1",concurrently:"^9.2.1",esbuild:"^0.25.0",husky:"^9.1.7",shx:"^0.4.0",tsx:"^4.20.3",typescript:"^5.9.2"},engines:{node:">=20.0.0"},slingVersion:"2.4.20260506-3",overrides:{rimraf:"6.1.3","fast-xml-parser":"5.7.2",gaxios:{rimraf:"6.1.3"}},dependencies:{"compound-engineering-pi":"^0.2.4"}};async function we(e,s,t,i){let o=mt(),r=await s.modelRegistry.getApiKeyForProvider(s.model?.provider||"slingshot");if(!r){W()&&P("ERROR: No API key found");return}let a=r.startsWith("Bearer ")?r:`Bearer ${r}`,c=process.env.SLINGSHOT_PROJECT_ID||t?.projectId||pt,n=process.env.SLINGSHOT_WORKSPACE_ID||t?.workspaceId||ft,l=process.env.CLIENT_ID||gt,h={"Content-Type":"application/json",accept:"application/json","access-token":a,"x-project-id":c,"x-workspace-id":n,"x-client-id":l,"sage-trace-id":o,"User-Agent":"pi-slingshot/1.0.0"},u=parseFloat(process.env.SLINGSHOT_TEMPERATURE||"0.2"),g=parseFloat(process.env.SLINGSHOT_TOP_P||"0.8"),b={source:ae.name||"sling",ai_model_info:{ai_provider_name:s.model?.provider||"slingshot",sage_modl_name:s.model?.id||"unknown",sage_modl_option:{temperature:String(u),max_token_size:String(s.model?.maxTokens||16834),top_p:String(g)}},rag_info:{type:null,account_name:"dummy",project_names:[],repository_names:[],programming_language:null},tab_data:{tab_count:"1"},tags:null,slingshot_version:ae.slingVersion||"2.3.2",chat_type:"agent",...i||{}};return{headers:h,sageCommonData:b}}async function _e(e,s,t,i){let o={eventName:e,sageCommonData:t,eventData:i};try{let r=await fetch(dt,{method:"POST",headers:s,body:JSON.stringify(o)});if(r.ok){let a=await r.json().catch(()=>{});if(a.error_code)throw new Error(`Analytics API error: ${a.error_code} - ${a.error_message||"No message"}`);W()&&(P(`'SUCCESS: Event sent: ${e}`),P(`Response: ${JSON.stringify(a)}`),P("\u2500".repeat(66)))}else{let a=await r.text().catch(()=>""),c={status:r.status,statusText:r.statusText,responseBody:a,requestHeaders:s};throw W()&&(P(`ERROR: ${r.status} ${r.statusText}`),Se("Error Details",c),Se("Failed Request Body",o)),new Error(`Analytics API error: ${r.status} ${r.statusText}`)}}catch(r){let a=r instanceof Error?r.message:String(r);console.warn("[Slingshot Analytics] Request that caused error:",a),W()&&(P(`EXCEPTION: ${a}`),r instanceof Error&&r.stack&&P(`Stack trace: ${r.stack}`),Se("Request that caused exception",o))}}import le from"chalk";function Ct(e,s){return{render(t){let i=` \u26AC _______. __ __ .__ __. _______
25
+ `;q.appendFileSync(N,i)}catch{}}var ae={name:"slingshot.cli",private:!0,type:"module",workspaces:["packages/*","packages/web-ui/example","packages/coding-agent/examples/extensions/with-deps","packages/coding-agent/examples/extensions/custom-provider-anthropic","packages/coding-agent/examples/extensions/custom-provider-gitlab-duo","packages/coding-agent/examples/extensions/custom-provider-qwen-cli"],scripts:{clean:"npm run clean --workspaces",build:"cd packages/tui && npm run build && cd ../ai && npm run build && cd ../agent && npm run build && cd ../coding-agent && npm run build && cd ../mom && npm run build && cd ../web-ui && npm run build && cd ../pods && npm run build",dev:'concurrently --names "ai,agent,coding-agent,mom,web-ui,tui" --prefix-colors "cyan,yellow,red,white,green,magenta" "cd packages/ai && npm run dev" "cd packages/agent && npm run dev" "cd packages/coding-agent && npm run dev" "cd packages/mom && npm run dev" "cd packages/web-ui && npm run dev" "cd packages/tui && npm run dev"',"dev:tsc":'concurrently --names "ai,web-ui" --prefix-colors "cyan,green" "cd packages/ai && npm run dev:tsc" "cd packages/web-ui && npm run dev:tsc"',check:"","check:browser-smoke":"","profile:tui":"node scripts/profile-coding-agent-node.mjs --mode tui","profile:rpc":"node scripts/profile-coding-agent-node.mjs --mode rpc",test:"npm run test --workspaces --if-present","version:patch":"npm version patch -ws --no-git-tag-version && node scripts/sync-versions.js && shx rm -rf node_modules packages/*/node_modules package-lock.json && npm install","version:minor":"npm version minor -ws --no-git-tag-version && node scripts/sync-versions.js && shx rm -rf node_modules packages/*/node_modules package-lock.json && npm install","version:major":"npm version major -ws --no-git-tag-version && node scripts/sync-versions.js && shx rm -rf node_modules packages/*/node_modules package-lock.json && npm install","version:set":"npm version -ws",prepublishOnly:"npm run clean && npm run build && npm run check",publish:"npm run prepublishOnly && npm publish -ws --access public","publish:dry":"npm run prepublishOnly && npm publish -ws --access public --dry-run","release:patch":"node scripts/release.mjs patch","release:minor":"node scripts/release.mjs minor","release:major":"node scripts/release.mjs major",prepare:"husky"},devDependencies:{"@biomejs/biome":"2.3.5","@types/node":"^24.12.2","@typescript/native-preview":"7.0.0-dev.20260120.1",concurrently:"^9.2.1",esbuild:"^0.25.0",husky:"^9.1.7",shx:"^0.4.0",tsx:"^4.20.3",typescript:"^5.9.2"},engines:{node:">=20.0.0"},slingVersion:"2.4.20260507-1",overrides:{rimraf:"6.1.3","fast-xml-parser":"5.7.2",gaxios:{rimraf:"6.1.3"}},dependencies:{"compound-engineering-pi":"^0.2.4"}};async function we(e,s,t,i){let o=mt(),r=await s.modelRegistry.getApiKeyForProvider(s.model?.provider||"slingshot");if(!r){W()&&P("ERROR: No API key found");return}let a=r.startsWith("Bearer ")?r:`Bearer ${r}`,c=process.env.SLINGSHOT_PROJECT_ID||t?.projectId||pt,n=process.env.SLINGSHOT_WORKSPACE_ID||t?.workspaceId||ft,l=process.env.CLIENT_ID||gt,h={"Content-Type":"application/json",accept:"application/json","access-token":a,"x-project-id":c,"x-workspace-id":n,"x-client-id":l,"sage-trace-id":o,"User-Agent":"pi-slingshot/1.0.0"},u=parseFloat(process.env.SLINGSHOT_TEMPERATURE||"0.2"),g=parseFloat(process.env.SLINGSHOT_TOP_P||"0.8"),b={source:ae.name||"sling",ai_model_info:{ai_provider_name:s.model?.provider||"slingshot",sage_modl_name:s.model?.id||"unknown",sage_modl_option:{temperature:String(u),max_token_size:String(s.model?.maxTokens||16834),top_p:String(g)}},rag_info:{type:null,account_name:"dummy",project_names:[],repository_names:[],programming_language:null},tab_data:{tab_count:"1"},tags:null,slingshot_version:ae.slingVersion||"2.3.2",chat_type:"agent",...i||{}};return{headers:h,sageCommonData:b}}async function _e(e,s,t,i){let o={eventName:e,sageCommonData:t,eventData:i};try{let r=await fetch(dt,{method:"POST",headers:s,body:JSON.stringify(o)});if(r.ok){let a=await r.json().catch(()=>{});if(a.error_code)throw new Error(`Analytics API error: ${a.error_code} - ${a.error_message||"No message"}`);W()&&(P(`'SUCCESS: Event sent: ${e}`),P(`Response: ${JSON.stringify(a)}`),P("\u2500".repeat(66)))}else{let a=await r.text().catch(()=>""),c={status:r.status,statusText:r.statusText,responseBody:a,requestHeaders:s};throw W()&&(P(`ERROR: ${r.status} ${r.statusText}`),Se("Error Details",c),Se("Failed Request Body",o)),new Error(`Analytics API error: ${r.status} ${r.statusText}`)}}catch(r){let a=r instanceof Error?r.message:String(r);console.warn("[Slingshot Analytics] Request that caused error:",a),W()&&(P(`EXCEPTION: ${a}`),r instanceof Error&&r.stack&&P(`Stack trace: ${r.stack}`),Se("Request that caused exception",o))}}import le from"chalk";function Ct(e,s){return{render(t){let i=` \u26AC _______. __ __ .__ __. _______
26
26
  \u274D \xB7 \u274D / || | | | | \\ | | / _____|
27
27
  \u2726 \u26AC \u2726 | (----\`| | | | | \\| | | | __
28
28
  \u26AC \xB7 \u26AC \u26AC \xB7 \u26AC \\ \\ | | | | | . \` | | | |_ |
29
29
  \u2726 \u26AC \u2726 .----) | | \`----.| | | |\\ | | |__| |
30
- \u274D \xB7 \u274D |_______/ |_______||__| |__| \\__| \\______|
30
+ \u274D \xB7 \u274D |_______/ |_______||__| |__| \\__| \\______/
31
31
  \u26AC `.split(`
32
32
  `).map(r=>le.bold(le.white(le.bgRed((r+" ".repeat(t)).substring(0,t))))),o=` Slingshot coding agent v${ae.slingVersion}`;return[...i,le.bgGray(le.dim(o+" ".repeat(t)).substring(0,t))]},invalidate(){}}}import ds from"chalk";var qe=["Accomplishing","Actioning","Actualizing","Architecting","Baking","Beaming","Beboppin'","Befuddling","Billowing","Blanching","Bloviating","Boogieing","Boondoggling","Booping","Bootstrapping","Brewing","Bunning","Burrowing","Calculating","Canoodling","Caramelizing","Cascading","Catapulting","Cerebrating","Channeling","Channelling","Choreographing","Churning","Clauding","Coalescing","Cogitating","Combobulating","Composing","Computing","Concocting","Considering","Contemplating","Cooking","Crafting","Creating","Crunching","Crystallizing","Cultivating","Deciphering","Deliberating","Determining","Dilly-dallying","Discombobulating","Doing","Doodling","Drizzling","Ebbing","Effecting","Elucidating","Embellishing","Enchanting","Envisioning","Evaporating","Fermenting","Fiddle-faddling","Finagling","Flamb\xE9ing","Flibbertigibbeting","Flowing","Flummoxing","Fluttering","Forging","Forming","Frolicking","Frosting","Gallivanting","Galloping","Garnishing","Generating","Gesticulating","Germinating","Gitifying","Grooving","Gusting","Harmonizing","Hashing","Hatching","Herding","Honking","Hullaballooing","Hyperspacing","Ideating","Imagining","Improvising","Incubating","Inferring","Infusing","Ionizing","Jitterbugging","Julienning","Kneading","Leavening","Levitating","Lollygagging","Manifesting","Marinating","Meandering","Metamorphosing","Misting","Moonwalking","Moseying","Mulling","Mustering","Musing","Nebulizing","Nesting","Newspapering","Noodling","Nucleating","Orbiting","Orchestrating","Osmosing","Perambulating","Percolating","Perusing","Philosophising","Photosynthesizing","Pollinating","Pondering","Pontificating","Pouncing","Precipitating","Prestidigitating","Processing","Proofing","Propagating","Puttering","Puzzling","Quantumizing","Razzle-dazzling","Razzmatazzing","Recombobulating","Reticulating","Roosting","Ruminating","Saut\xE9ing","Scampering","Schlepping","Scurrying","Seasoning","Shenaniganing","Shimmying","Simmering","Skedaddling","Sketching","Slithering","Smooshing","Sock-hopping","Spelunking","Spinning","Sprouting","Stewing","Sublimating","Swirling","Swooping","Symbioting","Synthesizing","Tempering","Thinking","Thundering","Tinkering","Tomfoolering","Topsy-turvying","Transfiguring","Transmuting","Twisting","Undulating","Unfurling","Unravelling","Vibing","Waddling","Wandering","Warping","Whatchamacalliting","Whirlpooling","Whirring","Whisking","Wibbling","Working","Wrangling","Zesting","Zigzagging"];import wt from"node:path";function ze(e,s){s==="random"&&(s=Object.keys(je)[Math.floor(Math.random()*Object.keys(je).length)]);let t=je[s||"dots"];e.ui.setWorkingIndicator(t)}var je={dots:{intervalMs:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{intervalMs:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{intervalMs:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{intervalMs:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{intervalMs:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{intervalMs:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{intervalMs:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{intervalMs:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{intervalMs:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{intervalMs:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{intervalMs:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{intervalMs:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{intervalMs:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots14:{intervalMs:80,frames:["\u2809\u2809","\u2808\u2819","\u2800\u2839","\u2800\u28B8","\u2800\u28F0","\u2880\u28E0","\u28C0\u28C0","\u28C4\u2840","\u28C6\u2800","\u2847\u2800","\u280F\u2800","\u280B\u2801"]},dots8Bit:{intervalMs:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},dotsCircle:{intervalMs:80,frames:["\u288E ","\u280E\u2801","\u280A\u2811","\u2808\u2831"," \u2871","\u2880\u2870","\u2884\u2860","\u2886\u2840"]},sand:{intervalMs:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{intervalMs:130,frames:["-","\\","|","/"]},line2:{intervalMs:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},rollingLine:{intervalMs:80,frames:["/ "," - "," "," |"," |"," "," - ","/ "]},pipe:{intervalMs:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{intervalMs:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{intervalMs:200,frames:[". ",".. ","..."," .."," ."," "]},star:{intervalMs:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{intervalMs:80,frames:["+","x","*"]},flip:{intervalMs:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{intervalMs:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{intervalMs:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{intervalMs:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{intervalMs:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{intervalMs:120,frames:[".","o","O","\xB0","O","o","."]},noise:{intervalMs:100,frames:["\u2593","\u2592","\u2591"]},bounce:{intervalMs:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{intervalMs:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{intervalMs:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{intervalMs:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{intervalMs:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{intervalMs:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{intervalMs:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{intervalMs:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{intervalMs:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{intervalMs:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{intervalMs:100,frames:["\u256B","\u256A"]},toggle:{intervalMs:250,frames:["\u22B6","\u22B7"]},toggle2:{intervalMs:80,frames:["\u25AB","\u25AA"]},toggle3:{intervalMs:120,frames:["\u25A1","\u25A0"]},toggle4:{intervalMs:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{intervalMs:100,frames:["\u25AE","\u25AF"]},toggle6:{intervalMs:300,frames:["\u101D","\u1040"]},toggle7:{intervalMs:80,frames:["\u29BE","\u29BF"]},toggle8:{intervalMs:100,frames:["\u25CD","\u25CC"]},toggle9:{intervalMs:100,frames:["\u25C9","\u25CE"]},toggle10:{intervalMs:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{intervalMs:50,frames:["\u29C7","\u29C6"]},toggle12:{intervalMs:120,frames:["\u2617","\u2616"]},toggle13:{intervalMs:80,frames:["=","*","-"]},arrow:{intervalMs:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{intervalMs:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{intervalMs:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{intervalMs:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{intervalMs:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{intervalMs:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{intervalMs:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{intervalMs:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u{1F497} "]},clock:{intervalMs:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{intervalMs:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{intervalMs:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{intervalMs:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{intervalMs:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{intervalMs:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{intervalMs:120,frames:["\u2590|____________\u258C","\u2590_|___________\u258C","\u2590__|__________\u258C","\u2590___|_________\u258C","\u2590____|________\u258C","\u2590_____|_______\u258C","\u2590______|______\u258C","\u2590_______|_____\u258C","\u2590________|____\u258C","\u2590_________|___\u258C","\u2590__________|__\u258C","\u2590___________|_\u258C","\u2590____________|\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{intervalMs:100,frames:["d","q","p","b"]},weather:{intervalMs:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{intervalMs:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{intervalMs:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{intervalMs:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{intervalMs:150,frames:["-","=","\u2261"]},betaWave:{intervalMs:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{intervalMs:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{intervalMs:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{intervalMs:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{intervalMs:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{intervalMs:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{intervalMs:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{intervalMs:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{intervalMs:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{intervalMs:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{intervalMs:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{intervalMs:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]},fish:{intervalMs:80,frames:["~~~~~~~~~~~~~~~~~~~~","> ~~~~~~~~~~~~~~~~~~","\xBA> ~~~~~~~~~~~~~~~~~","(\xBA> ~~~~~~~~~~~~~~~~","((\xBA> ~~~~~~~~~~~~~~~","<((\xBA> ~~~~~~~~~~~~~~","><((\xBA> ~~~~~~~~~~~~~"," ><((\xBA> ~~~~~~~~~~~~","~ ><((\xBA> ~~~~~~~~~~~","~~ <>((\xBA> ~~~~~~~~~~","~~~ ><((\xBA> ~~~~~~~~~","~~~~ <>((\xBA> ~~~~~~~~","~~~~~ ><((\xBA> ~~~~~~~","~~~~~~ <>((\xBA> ~~~~~~","~~~~~~~ ><((\xBA> ~~~~~","~~~~~~~~ <>((\xBA> ~~~~","~~~~~~~~~ ><((\xBA> ~~~","~~~~~~~~~~ <>((\xBA> ~~","~~~~~~~~~~~ ><((\xBA> ~","~~~~~~~~~~~~ <>((\xBA> ","~~~~~~~~~~~~~ ><((\xBA>","~~~~~~~~~~~~~~ <>((\xBA","~~~~~~~~~~~~~~~ ><((","~~~~~~~~~~~~~~~~ <>(","~~~~~~~~~~~~~~~~~ ><","~~~~~~~~~~~~~~~~~~ <","~~~~~~~~~~~~~~~~~~~~"]}};var ce=null,St=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function ps(e){let s=wt.basename(process.cwd()),t=e.getSessionName();return t?`\u03C0 - ${t} - ${s}`:`\u03C0 - ${s}`}function G(e){e.ui.setWorkingMessage(ds.magenta(qe[Math.floor(Math.random()*qe.length)]+"..."))}function fs(e){let s=null,t=0;function i(n){s&&(clearInterval(s),s=null),t=0,n.ui.setTitle(ps(e))}function o(n){i(n),s=setInterval(()=>{let l=St[t%St.length],h=wt.basename(process.cwd()),u=e.getSessionName(),g=u?`${l} \u03C0 - ${u} - ${h}`:`${l} \u03C0 - ${h}`;n.ui.setTitle(g),t++},80)}He();let r=new WeakSet;e.on("session_start",async(n,l)=>{let h=l.modelRegistry.authStorage;if(!r.has(h)){let u=h.getOAuthProviders.bind(h);h.getOAuthProviders=()=>u().filter(g=>g.id==="slingshot"),r.add(h)}l.hasUI&&l.ui.setHeader(Ct)});let a=!1;e.registerCommand("footer",{description:"Toggle custom footer",handler:async(n,l)=>{a=!a,a?(l.ui.setFooter((h,u,g)=>({dispose:g.onBranchChange(()=>h.requestRender()),invalidate(){},render(x){let d=0,f=0,y=0;for(let E of l.sessionManager.getBranch())if(E.type==="message"&&E.message.role==="assistant"){let B=E.message;d+=B.usage.input,f+=B.usage.output,y+=B.usage.cost.total}let L=g.getGitBranch(),k=E=>E<1e3?`${E}`:`${(E/1e3).toFixed(1)}k`,D=u.fg("dim",`\u2191${k(d)} \u2193${k(f)} $${y.toFixed(3)}`),I=L?` (${L})`:"",Q=u.fg("dim",`${l.model?.id||"no-model"}${I}`),Y=" ".repeat(Math.max(1,x-_(D)-_(Q)));return[z(D+Y+Q,x)]}})),l.ui.notify("Custom footer enabled","info")):(l.ui.setFooter(void 0),l.ui.notify("Default footer restored","info"))}}),e.registerProvider("slingshot",{baseUrl:ht,api:"openai-completions",apiKey:"SLINGSHOT_API_KEY",models:xt,oauth:{name:"Slingshot",login:Ue,refreshToken:Ce,getApiKey:n=>(ce=n,n.access)}}),e.registerCommand("slingshot-debug",{description:"Toggle Slingshot analytics debug logging",handler:async(n,l)=>{let h=!W();if(vt(h),h){let u="Slingshot Analytics Debug: ENABLED \u2705",g=yt();g&&(u+=`
33
33
 
34
34
  Log file:
35
- ${g}`),e.sendMessage({customType:"slingshot-debug-status",content:u,display:!0})}else e.sendMessage({customType:"slingshot-debug-status",content:"Slingshot Analytics Debug: DISABLED \u274C",display:!0})}}),e.registerCommand("refresh-token",{description:"Manually refresh Slingshot OAuth token",handler:async(n,l)=>{try{let h=l.modelRegistry.authStorage,u=h.get("slingshot");if(!u||u.type!=="oauth"){l.ui.notify("No Slingshot OAuth credentials found. Please use /login slingshot first.","error");return}l.ui.setStatus("refresh","Refreshing Slingshot token...");let g=await Ce(u);h.set("slingshot",{type:"oauth",...g}),ce=g,l.ui.setStatus("refresh",void 0),l.ui.notify("Slingshot token refreshed successfully!","info")}catch(h){l.ui.setStatus("refresh",void 0);let u=h instanceof Error?h.message:String(h);l.ui.notify(`Failed to refresh token: ${u}`,"error")}}});let c=ve();e.on("before_agent_start",async(n,l)=>{try{o(l),G(l),ze(l,"random");let h=await we(n,l,ce);if(!h?.headers||!h.sageCommonData)return;c=ve(),_e("agentExecutionStatus",h.headers,h.sageCommonData,{agent_id:c,agent_name:"Sling_Coding_Assistant",agent_execution_status:"Started",agent_correlation_id:c,agent_type:"Temp"})}catch(h){console.error("[Slingshot] Analytics error. Run /slingshot-debug for details.",h),W()&&(P(`CRITICAL ERROR in event handler: ${h?.message||h}`),h?.stack&&P(h.stack))}}),e.on("agent_end",async(n,l)=>{try{i(l);let h=await we(n,l,ce);if(!h?.headers||!h.sageCommonData)return;await _e("agentExecutionStatus",h.headers,h.sageCommonData,{agent_id:c,agent_name:"Sling_Coding_Assistant",agent_execution_status:"Success",agent_correlation_id:c,agent_type:"Temp",tools_list:[]})}catch(h){e.sendMessage({customType:"slingshot-analytics-error",content:"[Slingshot] Analytics error. Run /slingshot-debug for details.",display:!0}),W()&&(P(`CRITICAL ERROR in event handler: ${h?.message||h}`),h?.stack&&P(h.stack))}}),e.on("tool_execution_start",async(n,l)=>{G(l)}),e.on("tool_result",async(n,l)=>{if(G(l),n.toolName==="write"||n.toolName==="edit")try{e.sendMessage({customType:"slingshot-debug-status",content:"sessionid: "+l.sessionManager.getSessionId(),display:!0});let h=await we(n,l,ce);if(!h?.headers||!h.sageCommonData||n.isError)return;let u=n.input.path+"",b=u.split(".").pop()||"",x="";n.toolName==="write"?x=n.input.content+"":n.toolName==="edit"&&(x=(n.details?.diff+"").split(`
35
+ ${g}`),e.sendMessage({customType:"slingshot-debug-status",content:u,display:!0})}else e.sendMessage({customType:"slingshot-debug-status",content:"Slingshot Analytics Debug: DISABLED \u274C",display:!0})}}),e.registerCommand("refresh-token",{description:"Manually refresh Slingshot OAuth token",handler:async(n,l)=>{try{let h=l.modelRegistry.authStorage,u=h.get("slingshot");if(!u||u.type!=="oauth"){l.ui.notify("No Slingshot OAuth credentials found. Please use /login slingshot first.","error");return}l.ui.setStatus("refresh","Refreshing Slingshot token...");let g=await Ce(u);h.set("slingshot",{type:"oauth",...g}),ce=g,l.ui.setStatus("refresh",void 0),l.ui.notify("Slingshot token refreshed successfully!","info")}catch(h){l.ui.setStatus("refresh",void 0);let u=h instanceof Error?h.message:String(h);l.ui.notify(`Failed to refresh token: ${u}`,"error")}}});let c=ve();e.on("before_agent_start",async(n,l)=>{try{o(l),G(l),ze(l,"random");let h=await we(n,l,ce);if(!h?.headers||!h.sageCommonData)return;c=ve(),_e("agentExecutionStatus",h.headers,h.sageCommonData,{agent_id:c,agent_name:"Sling_Coding_Assistant",agent_execution_status:"Started",agent_correlation_id:c,agent_type:"Temp"})}catch(h){console.error("[Slingshot] Analytics error. Run /slingshot-debug for details.",h),W()&&(P(`CRITICAL ERROR in event handler: ${h?.message||h}`),h?.stack&&P(h.stack))}}),e.on("agent_end",async(n,l)=>{try{i(l);let h=await we(n,l,ce);if(!h?.headers||!h.sageCommonData)return;await _e("agentExecutionStatus",h.headers,h.sageCommonData,{agent_id:c,agent_name:"Sling_Coding_Assistant",agent_execution_status:"Success",agent_correlation_id:c,agent_type:"Temp",tools_list:[]})}catch(h){e.sendMessage({customType:"slingshot-analytics-error",content:"[Slingshot] Analytics error. Run /slingshot-debug for details.",display:!0}),W()&&(P(`CRITICAL ERROR in event handler: ${h?.message||h}`),h?.stack&&P(h.stack))}}),e.on("tool_execution_start",async(n,l)=>{G(l)}),e.on("tool_result",async(n,l)=>{if(G(l),n.toolName==="write"||n.toolName==="edit")try{let h=await we(n,l,ce);if(!h?.headers||!h.sageCommonData||n.isError)return;let u=n.input.path+"",b=u.split(".").pop()||"",x="";n.toolName==="write"?x=n.input.content+"":n.toolName==="edit"&&(x=(n.details?.diff+"").split(`
36
36
  `).filter(d=>d.startsWith("+")||d.startsWith("-")).join(`
37
37
  `)),_e(`${n.toolName==="edit"?"insertCode":"createNewFile"}`,h.headers,h.sageCommonData,{programming_language:b,number_of_lines:x.split(`
38
38
  `).length+"",message_id:l.sessionManager.getSessionId()+"-"+c,code_block_id:l.sessionManager.getSessionId()+"-"+u})}catch(h){e.sendMessage({customType:"slingshot-analytics-error",content:"[Slingshot] Analytics error. Run /slingshot-debug for details.",display:!0}),W()&&(P(`CRITICAL ERROR in event handler: ${h?.message||h}`),h?.stack&&P(h.stack))}}),e.on("tool_execution_end",async(n,l)=>{G(l)}),e.on("message_start",async(n,l)=>{G(l)}),e.on("message_update",async(n,l)=>{G(l)}),e.on("message_end",async(n,l)=>{G(l)})}export{fs as default};