@qvac/harness 0.2.10 → 0.2.12

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.
@@ -1,12 +1,12 @@
1
1
  // This file is autogenerated by the hyperschema compiler
2
- // Schema Version: 10
2
+ // Schema Version: 11
3
3
  /* eslint-disable camelcase */
4
4
  /* eslint-disable quotes */
5
5
  /* eslint-disable space-before-function-paren */
6
6
 
7
7
  import { c } from 'hyperschema/runtime'
8
8
 
9
- const VERSION = 10
9
+ const VERSION = 11
10
10
 
11
11
  // eslint-disable-next-line no-unused-vars
12
12
  let version = VERSION
@@ -386,13 +386,14 @@ const encoding10_enum = {
386
386
  "fetch-result": 'fetch-result',
387
387
  "rag-result": 'rag-result',
388
388
  "question-result": 'question-result',
389
- "drive-result": 'drive-result'
389
+ "drive-result": 'drive-result',
390
+ invoke: 'invoke'
390
391
  }
391
392
 
392
393
  // @harness/completion-frame-type enum
393
394
  const encoding10 = {
394
395
  preencode (state, m) {
395
- state.end++ // max enum is 7 so always one byte
396
+ state.end++ // max enum is 8 so always one byte
396
397
  },
397
398
  encode (state, m) {
398
399
  switch (m) {
@@ -417,6 +418,9 @@ const encoding10 = {
417
418
  case 'drive-result':
418
419
  c.uint.encode(state, 7)
419
420
  break
421
+ case 'invoke':
422
+ c.uint.encode(state, 8)
423
+ break
420
424
  default:
421
425
  throw new Error('Unknown enum')
422
426
  }
@@ -437,6 +441,8 @@ const encoding10 = {
437
441
  return 'question-result'
438
442
  case 7:
439
443
  return 'drive-result'
444
+ case 8:
445
+ return 'invoke'
440
446
  default: return null
441
447
  }
442
448
  }
@@ -482,7 +488,9 @@ const encoding11 = {
482
488
  ((version >= 5 && m.grantedDrives) ? 4194304 : 0) |
483
489
  ((version >= 5 && m.payload) ? 8388608 : 0) |
484
490
  ((version >= 5 && m.grantedWriteDirs) ? 16777216 : 0) |
485
- ((version >= 9 && m.captureInferenceCalls) ? 33554432 : 0)
491
+ ((version >= 9 && m.captureInferenceCalls) ? 33554432 : 0) |
492
+ ((version >= 11 && m.capability) ? 67108864 : 0) |
493
+ ((version >= 11 && m.arguments) ? 134217728 : 0)
486
494
 
487
495
  encoding10.preencode(state, m.type)
488
496
  c.uint.preencode(state, flags)
@@ -510,6 +518,8 @@ const encoding11 = {
510
518
  if (version >= 5 && m.grantedDrives) encoding11_23.preencode(state, m.grantedDrives)
511
519
  if (version >= 5 && m.payload) c.json.preencode(state, m.payload)
512
520
  if (version >= 5 && m.grantedWriteDirs) encoding11_25.preencode(state, m.grantedWriteDirs)
521
+ if (version >= 11 && m.capability) c.string.preencode(state, m.capability)
522
+ if (version >= 11 && m.arguments) c.json.preencode(state, m.arguments)
513
523
  },
514
524
  encode(state, m) {
515
525
  const flags =
@@ -538,7 +548,9 @@ const encoding11 = {
538
548
  ((version >= 5 && m.grantedDrives) ? 4194304 : 0) |
539
549
  ((version >= 5 && m.payload) ? 8388608 : 0) |
540
550
  ((version >= 5 && m.grantedWriteDirs) ? 16777216 : 0) |
541
- ((version >= 9 && m.captureInferenceCalls) ? 33554432 : 0)
551
+ ((version >= 9 && m.captureInferenceCalls) ? 33554432 : 0) |
552
+ ((version >= 11 && m.capability) ? 67108864 : 0) |
553
+ ((version >= 11 && m.arguments) ? 134217728 : 0)
542
554
 
543
555
  encoding10.encode(state, m.type)
544
556
  c.uint.encode(state, flags)
@@ -566,6 +578,8 @@ const encoding11 = {
566
578
  if (version >= 5 && m.grantedDrives) encoding11_23.encode(state, m.grantedDrives)
567
579
  if (version >= 5 && m.payload) c.json.encode(state, m.payload)
568
580
  if (version >= 5 && m.grantedWriteDirs) encoding11_25.encode(state, m.grantedWriteDirs)
581
+ if (version >= 11 && m.capability) c.string.encode(state, m.capability)
582
+ if (version >= 11 && m.arguments) c.json.encode(state, m.arguments)
569
583
  },
570
584
  decode(state) {
571
585
  const r0 = encoding10.decode(state)
@@ -598,7 +612,9 @@ const encoding11 = {
598
612
  grantedDrives: (version >= 5 && (flags & 4194304) !== 0) ? encoding11_23.decode(state) : null,
599
613
  payload: (version >= 5 && (flags & 8388608) !== 0) ? c.json.decode(state) : null,
600
614
  grantedWriteDirs: (version >= 5 && (flags & 16777216) !== 0) ? encoding11_25.decode(state) : null,
601
- captureInferenceCalls: (version >= 9 && (flags & 33554432) !== 0)
615
+ captureInferenceCalls: (version >= 9 && (flags & 33554432) !== 0),
616
+ capability: (version >= 11 && (flags & 67108864) !== 0) ? c.string.decode(state) : null,
617
+ arguments: (version >= 11 && (flags & 134217728) !== 0) ? c.json.decode(state) : null
602
618
  }
603
619
  }
604
620
  }
@@ -2145,7 +2161,8 @@ const encoding50 = {
2145
2161
  (m.steps ? 16 : 0) |
2146
2162
  (m.configSteps ? 32 : 0) |
2147
2163
  (m.fields ? 64 : 0) |
2148
- (m.satisfied ? 128 : 0)
2164
+ (m.satisfied ? 128 : 0) |
2165
+ ((version >= 11 && m.oauth) ? 256 : 0)
2149
2166
 
2150
2167
  encoding49.preencode(state, m.kind)
2151
2168
  c.string.preencode(state, m.label)
@@ -2158,6 +2175,7 @@ const encoding50 = {
2158
2175
  if (m.steps) encoding50_6.preencode(state, m.steps)
2159
2176
  if (m.configSteps) encoding50_7.preencode(state, m.configSteps)
2160
2177
  if (m.fields) encoding50_8.preencode(state, m.fields)
2178
+ if (version >= 11 && m.oauth) encoding50_10.preencode(state, m.oauth)
2161
2179
  },
2162
2180
  encode(state, m) {
2163
2181
  const flags =
@@ -2168,7 +2186,8 @@ const encoding50 = {
2168
2186
  (m.steps ? 16 : 0) |
2169
2187
  (m.configSteps ? 32 : 0) |
2170
2188
  (m.fields ? 64 : 0) |
2171
- (m.satisfied ? 128 : 0)
2189
+ (m.satisfied ? 128 : 0) |
2190
+ ((version >= 11 && m.oauth) ? 256 : 0)
2172
2191
 
2173
2192
  encoding49.encode(state, m.kind)
2174
2193
  c.string.encode(state, m.label)
@@ -2181,6 +2200,7 @@ const encoding50 = {
2181
2200
  if (m.steps) encoding50_6.encode(state, m.steps)
2182
2201
  if (m.configSteps) encoding50_7.encode(state, m.configSteps)
2183
2202
  if (m.fields) encoding50_8.encode(state, m.fields)
2203
+ if (version >= 11 && m.oauth) encoding50_10.encode(state, m.oauth)
2184
2204
  },
2185
2205
  decode(state) {
2186
2206
  const r0 = encoding49.decode(state)
@@ -2197,7 +2217,8 @@ const encoding50 = {
2197
2217
  steps: (flags & 16) !== 0 ? encoding50_6.decode(state) : null,
2198
2218
  configSteps: (flags & 32) !== 0 ? encoding50_7.decode(state) : null,
2199
2219
  fields: (flags & 64) !== 0 ? encoding50_8.decode(state) : null,
2200
- satisfied: (flags & 128) !== 0
2220
+ satisfied: (flags & 128) !== 0,
2221
+ oauth: (version >= 11 && (flags & 256) !== 0) ? encoding50_10.decode(state) : null
2201
2222
  }
2202
2223
  }
2203
2224
  }
@@ -2908,12 +2929,172 @@ const encoding77 = {
2908
2929
  }
2909
2930
  }
2910
2931
 
2932
+ // @harness/detect-language-request
2933
+ const encoding78 = {
2934
+ preencode(state, m) {
2935
+ c.string.preencode(state, m.text)
2936
+ state.end++ // max flag is 1 so always one byte
2937
+
2938
+ if (version >= 11 && m.topK) c.uint.preencode(state, m.topK)
2939
+ },
2940
+ encode(state, m) {
2941
+ const flags = (version >= 11 && m.topK) ? 1 : 0
2942
+
2943
+ c.string.encode(state, m.text)
2944
+ c.uint.encode(state, flags)
2945
+
2946
+ if (version >= 11 && m.topK) c.uint.encode(state, m.topK)
2947
+ },
2948
+ decode(state) {
2949
+ const r0 = c.string.decode(state)
2950
+ const flags = c.uint.decode(state)
2951
+
2952
+ return {
2953
+ text: r0,
2954
+ topK: (version >= 11 && (flags & 1) !== 0) ? c.uint.decode(state) : 0
2955
+ }
2956
+ }
2957
+ }
2958
+
2959
+ // @harness/detected-language
2960
+ const encoding79 = {
2961
+ preencode(state, m) {
2962
+ c.string.preencode(state, m.code)
2963
+ c.string.preencode(state, m.language)
2964
+ state.end++ // max flag is 1 so always one byte
2965
+
2966
+ if (version >= 11 && m.probability) c.float64.preencode(state, m.probability)
2967
+ },
2968
+ encode(state, m) {
2969
+ const flags = (version >= 11 && m.probability) ? 1 : 0
2970
+
2971
+ c.string.encode(state, m.code)
2972
+ c.string.encode(state, m.language)
2973
+ c.uint.encode(state, flags)
2974
+
2975
+ if (version >= 11 && m.probability) c.float64.encode(state, m.probability)
2976
+ },
2977
+ decode(state) {
2978
+ const r0 = c.string.decode(state)
2979
+ const r1 = c.string.decode(state)
2980
+ const flags = c.uint.decode(state)
2981
+
2982
+ return {
2983
+ code: r0,
2984
+ language: r1,
2985
+ probability: (version >= 11 && (flags & 1) !== 0) ? c.float64.decode(state) : 0
2986
+ }
2987
+ }
2988
+ }
2989
+
2990
+ // @harness/detect-language-response.languages
2991
+ const encoding80_0 = c.array(c.frame(encoding79))
2992
+
2993
+ // @harness/detect-language-response
2994
+ const encoding80 = {
2995
+ preencode(state, m) {
2996
+ encoding80_0.preencode(state, m.languages)
2997
+ },
2998
+ encode(state, m) {
2999
+ encoding80_0.encode(state, m.languages)
3000
+ },
3001
+ decode(state) {
3002
+ const r0 = encoding80_0.decode(state)
3003
+
3004
+ return {
3005
+ languages: r0
3006
+ }
3007
+ }
3008
+ }
3009
+
3010
+ // @harness/skill-oauth-param
3011
+ const encoding81 = {
3012
+ preencode(state, m) {
3013
+ c.string.preencode(state, m.key)
3014
+ c.string.preencode(state, m.value)
3015
+ },
3016
+ encode(state, m) {
3017
+ c.string.encode(state, m.key)
3018
+ c.string.encode(state, m.value)
3019
+ },
3020
+ decode(state) {
3021
+ const r0 = c.string.decode(state)
3022
+ const r1 = c.string.decode(state)
3023
+
3024
+ return {
3025
+ key: r0,
3026
+ value: r1
3027
+ }
3028
+ }
3029
+ }
3030
+
3031
+ // @harness/skill-oauth-config.scopes
3032
+ const encoding82_4 = encoding4_4
3033
+ // @harness/skill-oauth-config.extraAuthParams
3034
+ const encoding82_5 = c.array(c.frame(encoding81))
3035
+
3036
+ // @harness/skill-oauth-config
3037
+ const encoding82 = {
3038
+ preencode(state, m) {
3039
+ c.string.preencode(state, m.stateKey)
3040
+ c.string.preencode(state, m.authUrl)
3041
+ c.string.preencode(state, m.tokenUrl)
3042
+ c.string.preencode(state, m.tokenAuth)
3043
+ state.end++ // max flag is 16 so always one byte
3044
+
3045
+ if (version >= 11 && m.scopes) encoding82_4.preencode(state, m.scopes)
3046
+ if (version >= 11 && m.extraAuthParams) encoding82_5.preencode(state, m.extraAuthParams)
3047
+ if (version >= 11 && m.registrationEndpoint) c.string.preencode(state, m.registrationEndpoint)
3048
+ if (version >= 11 && m.port) c.uint.preencode(state, m.port)
3049
+ },
3050
+ encode(state, m) {
3051
+ const flags =
3052
+ ((version >= 11 && m.scopes) ? 1 : 0) |
3053
+ ((version >= 11 && m.extraAuthParams) ? 2 : 0) |
3054
+ ((version >= 11 && m.registrationEndpoint) ? 4 : 0) |
3055
+ ((version >= 11 && m.port) ? 8 : 0) |
3056
+ ((version >= 11 && m.sharedIosSession) ? 16 : 0)
3057
+
3058
+ c.string.encode(state, m.stateKey)
3059
+ c.string.encode(state, m.authUrl)
3060
+ c.string.encode(state, m.tokenUrl)
3061
+ c.string.encode(state, m.tokenAuth)
3062
+ c.uint.encode(state, flags)
3063
+
3064
+ if (version >= 11 && m.scopes) encoding82_4.encode(state, m.scopes)
3065
+ if (version >= 11 && m.extraAuthParams) encoding82_5.encode(state, m.extraAuthParams)
3066
+ if (version >= 11 && m.registrationEndpoint) c.string.encode(state, m.registrationEndpoint)
3067
+ if (version >= 11 && m.port) c.uint.encode(state, m.port)
3068
+ },
3069
+ decode(state) {
3070
+ const r0 = c.string.decode(state)
3071
+ const r1 = c.string.decode(state)
3072
+ const r2 = c.string.decode(state)
3073
+ const r3 = c.string.decode(state)
3074
+ const flags = c.uint.decode(state)
3075
+
3076
+ return {
3077
+ stateKey: r0,
3078
+ authUrl: r1,
3079
+ tokenUrl: r2,
3080
+ tokenAuth: r3,
3081
+ scopes: (version >= 11 && (flags & 1) !== 0) ? encoding82_4.decode(state) : null,
3082
+ extraAuthParams: (version >= 11 && (flags & 2) !== 0) ? encoding82_5.decode(state) : null,
3083
+ registrationEndpoint: (version >= 11 && (flags & 4) !== 0) ? c.string.decode(state) : null,
3084
+ port: (version >= 11 && (flags & 8) !== 0) ? c.uint.decode(state) : 0,
3085
+ sharedIosSession: (version >= 11 && (flags & 16) !== 0)
3086
+ }
3087
+ }
3088
+ }
3089
+
2911
3090
  // @harness/completion-frame.grantedDrives, deferred due to recusive use
2912
3091
  const encoding11_23 = c.array(c.frame(encoding60))
2913
3092
  // @harness/skill.setupV2, deferred due to recusive use
2914
3093
  const encoding28_14 = c.frame(encoding51)
2915
3094
  // @harness/capability-response.memoryBudget, deferred due to recusive use
2916
3095
  const encoding42_2 = c.frame(encoding57)
3096
+ // @harness/skill-setup-route-v2.oauth, deferred due to recusive use
3097
+ const encoding50_10 = c.frame(encoding82)
2917
3098
 
2918
3099
  function setVersion(v) {
2919
3100
  version = v
@@ -3122,6 +3303,16 @@ function getEncoding(name) {
3122
3303
  return encoding76
3123
3304
  case '@harness/kv-cache-delete-request':
3124
3305
  return encoding77
3306
+ case '@harness/detect-language-request':
3307
+ return encoding78
3308
+ case '@harness/detected-language':
3309
+ return encoding79
3310
+ case '@harness/detect-language-response':
3311
+ return encoding80
3312
+ case '@harness/skill-oauth-param':
3313
+ return encoding81
3314
+ case '@harness/skill-oauth-config':
3315
+ return encoding82
3125
3316
  default:
3126
3317
  throw new Error('Encoder not found ' + name)
3127
3318
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": 10,
2
+ "version": 11,
3
3
  "schema": [
4
4
  {
5
5
  "name": "empty",
@@ -307,6 +307,10 @@
307
307
  {
308
308
  "key": "drive-result",
309
309
  "version": 5
310
+ },
311
+ {
312
+ "key": "invoke",
313
+ "version": 11
310
314
  }
311
315
  ],
312
316
  "strings": true
@@ -456,6 +460,16 @@
456
460
  "name": "captureInferenceCalls",
457
461
  "type": "bool",
458
462
  "version": 9
463
+ },
464
+ {
465
+ "name": "capability",
466
+ "type": "string",
467
+ "version": 11
468
+ },
469
+ {
470
+ "name": "arguments",
471
+ "type": "json",
472
+ "version": 11
459
473
  }
460
474
  ]
461
475
  },
@@ -1786,6 +1800,11 @@
1786
1800
  "name": "satisfied",
1787
1801
  "type": "bool",
1788
1802
  "version": 1
1803
+ },
1804
+ {
1805
+ "name": "oauth",
1806
+ "type": "@harness/skill-oauth-config",
1807
+ "version": 11
1789
1808
  }
1790
1809
  ]
1791
1810
  },
@@ -2326,6 +2345,144 @@
2326
2345
  "version": 8
2327
2346
  }
2328
2347
  ]
2348
+ },
2349
+ {
2350
+ "name": "detect-language-request",
2351
+ "namespace": "harness",
2352
+ "compact": false,
2353
+ "flagsPosition": 1,
2354
+ "fields": [
2355
+ {
2356
+ "name": "text",
2357
+ "required": true,
2358
+ "type": "string",
2359
+ "version": 11
2360
+ },
2361
+ {
2362
+ "name": "topK",
2363
+ "type": "uint",
2364
+ "version": 11
2365
+ }
2366
+ ]
2367
+ },
2368
+ {
2369
+ "name": "detected-language",
2370
+ "namespace": "harness",
2371
+ "compact": false,
2372
+ "flagsPosition": 2,
2373
+ "fields": [
2374
+ {
2375
+ "name": "code",
2376
+ "required": true,
2377
+ "type": "string",
2378
+ "version": 11
2379
+ },
2380
+ {
2381
+ "name": "language",
2382
+ "required": true,
2383
+ "type": "string",
2384
+ "version": 11
2385
+ },
2386
+ {
2387
+ "name": "probability",
2388
+ "type": "float64",
2389
+ "version": 11
2390
+ }
2391
+ ]
2392
+ },
2393
+ {
2394
+ "name": "detect-language-response",
2395
+ "namespace": "harness",
2396
+ "compact": false,
2397
+ "flagsPosition": -1,
2398
+ "fields": [
2399
+ {
2400
+ "name": "languages",
2401
+ "required": true,
2402
+ "array": true,
2403
+ "type": "@harness/detected-language",
2404
+ "version": 11
2405
+ }
2406
+ ]
2407
+ },
2408
+ {
2409
+ "name": "skill-oauth-param",
2410
+ "namespace": "harness",
2411
+ "compact": false,
2412
+ "flagsPosition": -1,
2413
+ "fields": [
2414
+ {
2415
+ "name": "key",
2416
+ "required": true,
2417
+ "type": "string",
2418
+ "version": 11
2419
+ },
2420
+ {
2421
+ "name": "value",
2422
+ "required": true,
2423
+ "type": "string",
2424
+ "version": 11
2425
+ }
2426
+ ]
2427
+ },
2428
+ {
2429
+ "name": "skill-oauth-config",
2430
+ "namespace": "harness",
2431
+ "compact": false,
2432
+ "flagsPosition": 4,
2433
+ "fields": [
2434
+ {
2435
+ "name": "stateKey",
2436
+ "required": true,
2437
+ "type": "string",
2438
+ "version": 11
2439
+ },
2440
+ {
2441
+ "name": "authUrl",
2442
+ "required": true,
2443
+ "type": "string",
2444
+ "version": 11
2445
+ },
2446
+ {
2447
+ "name": "tokenUrl",
2448
+ "required": true,
2449
+ "type": "string",
2450
+ "version": 11
2451
+ },
2452
+ {
2453
+ "name": "tokenAuth",
2454
+ "required": true,
2455
+ "type": "string",
2456
+ "version": 11
2457
+ },
2458
+ {
2459
+ "name": "scopes",
2460
+ "array": true,
2461
+ "type": "string",
2462
+ "version": 11
2463
+ },
2464
+ {
2465
+ "name": "extraAuthParams",
2466
+ "array": true,
2467
+ "type": "@harness/skill-oauth-param",
2468
+ "version": 11
2469
+ },
2470
+ {
2471
+ "name": "registrationEndpoint",
2472
+ "type": "string",
2473
+ "version": 11
2474
+ },
2475
+ {
2476
+ "name": "port",
2477
+ "type": "uint",
2478
+ "version": 11
2479
+ },
2480
+ {
2481
+ "name": "sharedIosSession",
2482
+ "type": "bool",
2483
+ "version": 11
2484
+ }
2485
+ ]
2329
2486
  }
2330
2487
  ]
2331
2488
  }
@@ -1,5 +1,5 @@
1
1
  // This file is autogenerated by hyperschema-ts
2
- // Schema version: 10
2
+ // Schema version: 11
3
3
  // Do not edit manually.
4
4
 
5
5
  export interface HarnessEmpty {
@@ -58,7 +58,7 @@ export interface HarnessAttachmentRecord {
58
58
  byteLength: number
59
59
  }
60
60
 
61
- export type HarnessCompletionFrameType = "start" | "decision" | "attach-result" | "fetch-result" | "rag-result" | "question-result" | "drive-result"
61
+ export type HarnessCompletionFrameType = "start" | "decision" | "attach-result" | "fetch-result" | "rag-result" | "question-result" | "drive-result" | "invoke"
62
62
 
63
63
  export interface HarnessCompletionFrame {
64
64
  type: HarnessCompletionFrameType
@@ -88,6 +88,8 @@ export interface HarnessCompletionFrame {
88
88
  payload?: unknown | null
89
89
  grantedWriteDirs?: string[] | null
90
90
  captureInferenceCalls?: boolean
91
+ capability?: string | null
92
+ arguments?: unknown | null
91
93
  }
92
94
 
93
95
  export type HarnessCompletionEventType = "content" | "thinking" | "tool-call" | "tool-result" | "approval-ask" | "metrics" | "error" | "aborted" | "attach-ask" | "fetch-ask" | "progress" | "rag-ask" | "question-ask" | "done" | "tool-activity" | "drive-ask" | "inference-call" | "inference-sent"
@@ -357,6 +359,7 @@ export interface HarnessSkillSetupRouteV2 {
357
359
  configSteps?: string[] | null
358
360
  fields?: HarnessSkillSetupField[] | null
359
361
  satisfied?: boolean
362
+ oauth?: HarnessSkillOauthConfig | null
360
363
  }
361
364
 
362
365
  export interface HarnessSkillSetupV2 {
@@ -480,6 +483,38 @@ export interface HarnessKvCacheDeleteRequest {
480
483
  kvCacheKey: string
481
484
  }
482
485
 
486
+ export interface HarnessDetectLanguageRequest {
487
+ text: string
488
+ topK?: number
489
+ }
490
+
491
+ export interface HarnessDetectedLanguage {
492
+ code: string
493
+ language: string
494
+ probability?: number
495
+ }
496
+
497
+ export interface HarnessDetectLanguageResponse {
498
+ languages: HarnessDetectedLanguage[]
499
+ }
500
+
501
+ export interface HarnessSkillOauthParam {
502
+ key: string
503
+ value: string
504
+ }
505
+
506
+ export interface HarnessSkillOauthConfig {
507
+ stateKey: string
508
+ authUrl: string
509
+ tokenUrl: string
510
+ tokenAuth: string
511
+ scopes?: string[] | null
512
+ extraAuthParams?: HarnessSkillOauthParam[] | null
513
+ registrationEndpoint?: string | null
514
+ port?: number
515
+ sharedIosSession?: boolean
516
+ }
517
+
483
518
  export interface SchemaTypes {
484
519
  "@harness/empty": HarnessEmpty
485
520
  "@harness/ok-response": HarnessOkResponse
@@ -559,4 +594,9 @@ export interface SchemaTypes {
559
594
  "@harness/copy-skill-response": HarnessCopySkillResponse
560
595
  "@harness/delete-skill-response": HarnessDeleteSkillResponse
561
596
  "@harness/kv-cache-delete-request": HarnessKvCacheDeleteRequest
597
+ "@harness/detect-language-request": HarnessDetectLanguageRequest
598
+ "@harness/detected-language": HarnessDetectedLanguage
599
+ "@harness/detect-language-response": HarnessDetectLanguageResponse
600
+ "@harness/skill-oauth-param": HarnessSkillOauthParam
601
+ "@harness/skill-oauth-config": HarnessSkillOauthConfig
562
602
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qvac/harness",
3
- "version": "0.2.10",
3
+ "version": "0.2.12",
4
4
  "type": "module",
5
5
  "description": "An AI harness implementing generate(context) via @qvac/sdk. Knows nothing about workbench, hyperdb, or chunks — just inference in, events out.",
6
6
  "exports": {
@@ -654,8 +654,9 @@
654
654
  },
655
655
  "dependencies": {
656
656
  "@qvac/inference": "0.19.0",
657
+ "@qvac/langdetect-text": "0.1.2",
657
658
  "@qvac/sdk": "0.19.0",
658
- "@qvac/skills": "^0.1.4",
659
+ "@qvac/skills": "^0.1.6",
659
660
  "asenion": "^0.1.0",
660
661
  "b4a": "^1.8.1",
661
662
  "bare-abort-controller": "^1.1.2",