aweshare 0.6.1 → 0.6.3

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 (51) hide show
  1. package/README.ai.md +6 -0
  2. package/README.md +7 -4
  3. package/apps/agent/dist/connection.d.ts +22 -6
  4. package/apps/agent/dist/connection.js +75 -11
  5. package/apps/agent/dist/connection.js.map +1 -1
  6. package/apps/agent/dist/table.d.ts +9 -0
  7. package/apps/agent/dist/table.js +21 -0
  8. package/apps/agent/dist/table.js.map +1 -1
  9. package/apps/consumer/dist/cli.js +87 -10
  10. package/apps/consumer/dist/cli.js.map +1 -1
  11. package/apps/consumer/dist/hub.d.ts +4 -2
  12. package/apps/consumer/dist/hub.js +5 -3
  13. package/apps/consumer/dist/hub.js.map +1 -1
  14. package/apps/consumer/dist/ping.d.ts +24 -0
  15. package/apps/consumer/dist/ping.js +164 -0
  16. package/apps/consumer/dist/ping.js.map +1 -0
  17. package/apps/consumer/dist/table.d.ts +38 -4
  18. package/apps/consumer/dist/table.js +86 -32
  19. package/apps/consumer/dist/table.js.map +1 -1
  20. package/apps/hub/dist/cli.js +2 -0
  21. package/apps/hub/dist/cli.js.map +1 -1
  22. package/apps/hub/dist/config.d.ts +4 -1
  23. package/apps/hub/dist/config.js +31 -0
  24. package/apps/hub/dist/config.js.map +1 -1
  25. package/apps/hub/dist/consumer.d.ts +5 -1
  26. package/apps/hub/dist/consumer.js +26 -1
  27. package/apps/hub/dist/consumer.js.map +1 -1
  28. package/apps/hub/dist/db.d.ts +7 -0
  29. package/apps/hub/dist/db.js +22 -5
  30. package/apps/hub/dist/db.js.map +1 -1
  31. package/apps/hub/dist/limits.d.ts +6 -0
  32. package/apps/hub/dist/limits.js +13 -4
  33. package/apps/hub/dist/limits.js.map +1 -1
  34. package/apps/hub/dist/local.d.ts +3 -0
  35. package/apps/hub/dist/local.js +5 -0
  36. package/apps/hub/dist/local.js.map +1 -1
  37. package/apps/hub/dist/table.d.ts +8 -0
  38. package/apps/hub/dist/table.js +20 -0
  39. package/apps/hub/dist/table.js.map +1 -1
  40. package/apps/hub/dist/tunnel.d.ts +4 -0
  41. package/apps/hub/dist/tunnel.js +6 -0
  42. package/apps/hub/dist/tunnel.js.map +1 -1
  43. package/package.json +1 -1
  44. package/packages/producer-core/dist/health.d.ts +10 -0
  45. package/packages/producer-core/dist/health.js +25 -0
  46. package/packages/producer-core/dist/health.js.map +1 -1
  47. package/packages/producer-core/dist/probe.d.ts +9 -0
  48. package/packages/producer-core/dist/probe.js +40 -0
  49. package/packages/producer-core/dist/probe.js.map +1 -1
  50. package/packages/protocol/dist/messages.d.ts +4 -0
  51. package/packages/protocol/dist/messages.js.map +1 -1
@@ -4,3 +4,12 @@ export declare function probeTarget(backend: ResolvedBackend): {
4
4
  headers: Record<string, string>;
5
5
  };
6
6
  export declare function probeBody(model: string, protocol?: 'openai' | 'anthropic' | 'responses', login?: boolean): Record<string, unknown>;
7
+ /** Recognize the probe shapes this package builds (and the consumer CLI's
8
+ * ping sends): a single-turn 'ping' with a minimal token cap. Used by the
9
+ * hub to count diagnostic traffic against a per-consumer daily probe budget
10
+ * — a heuristic by necessity (the wire cannot prove intent), so the rule is
11
+ * kept strict: the prompt must be exactly 'ping' and the token cap exactly
12
+ * the probe's. Ordinary requests never match; a user genuinely chatting the
13
+ * word 'ping' one turn at a time does, which the budget's error message
14
+ * names so the denial is never mysterious. */
15
+ export declare function isProbeBody(body: Record<string, unknown>, protocol: 'openai' | 'anthropic' | 'responses'): boolean;
@@ -51,4 +51,44 @@ export function probeBody(model, protocol = 'openai', login = false) {
51
51
  }
52
52
  return { model, messages: [{ role: 'user', content: 'ping' }], max_tokens: 1, stream: false };
53
53
  }
54
+ /** Recognize the probe shapes this package builds (and the consumer CLI's
55
+ * ping sends): a single-turn 'ping' with a minimal token cap. Used by the
56
+ * hub to count diagnostic traffic against a per-consumer daily probe budget
57
+ * — a heuristic by necessity (the wire cannot prove intent), so the rule is
58
+ * kept strict: the prompt must be exactly 'ping' and the token cap exactly
59
+ * the probe's. Ordinary requests never match; a user genuinely chatting the
60
+ * word 'ping' one turn at a time does, which the budget's error message
61
+ * names so the denial is never mysterious. */
62
+ export function isProbeBody(body, protocol) {
63
+ if (protocol === 'responses') {
64
+ // input: one user turn whose content is the bare string or the typed
65
+ // input_text form, both accepted by the responses wire; token cap 1 or
66
+ // absent (login probes must omit max_output_tokens)
67
+ if (!Array.isArray(body.input) || body.input.length !== 1)
68
+ return false;
69
+ const turn = body.input[0];
70
+ if (typeof turn !== 'object' || turn === null || turn.role !== 'user')
71
+ return false;
72
+ const text = typeof turn.content === 'string'
73
+ ? turn.content
74
+ : Array.isArray(turn.content) &&
75
+ typeof turn.content[0] === 'object' &&
76
+ turn.content[0] !== null &&
77
+ turn.content[0].type === 'input_text'
78
+ ? turn.content[0].text
79
+ : undefined;
80
+ if (text !== 'ping')
81
+ return false;
82
+ const cap = body.max_output_tokens;
83
+ return cap === undefined || cap === 1;
84
+ }
85
+ if (!Array.isArray(body.messages) || body.messages.length !== 1)
86
+ return false;
87
+ const message = body.messages[0];
88
+ return (typeof message === 'object' &&
89
+ message !== null &&
90
+ message.role === 'user' &&
91
+ message.content === 'ping' &&
92
+ body.max_tokens === 1);
93
+ }
54
94
  //# sourceMappingURL=probe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,UAAU,WAAW,CAAC,OAAwB;IAIlD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAChD,MAAM,IAAI,GACR,OAAO,CAAC,QAAQ,KAAK,WAAW;QAC9B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,WAAW;YAChC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,mBAAmB,CAAA;IAC3B,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;IAC9E,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QAC9B,qEAAqE;QACrE,wCAAwC;QACxC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,oBAAoB,EAAE,CAAA;QACzD,OAAO,CAAC,aAAa,GAAG,UAAU,WAAW,EAAE,CAAA;QAC/C,OAAO,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAA;QACzC,OAAO,CAAC,aAAa,CAAC,GAAG,wBAAwB,CAAA;QACjD,OAAO,CAAC,UAAU,GAAG,cAAc,CAAA;IACrC,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAA;QACzD,OAAO,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAAA;IAC7C,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,aAAa,GAAG,UAAU,OAAO,CAAC,MAAM,EAAE,CAAA;IACpD,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAAa,EACb,WAAiD,QAAQ,EACzD,KAAK,GAAG,KAAK;IAEb,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,uEAAuE;QACvE,yEAAyE;QACzE,oEAAoE;QACpE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO;gBACL,KAAK;gBACL,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC1C,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,KAAK;aACb,CAAA;QACH,CAAC;QACD,OAAO;YACL,KAAK;YACL,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC1C,iBAAiB,EAAE,CAAC;YACpB,MAAM,EAAE,KAAK;YACb,oEAAoE;YACpE,yCAAyC;YACzC,KAAK,EAAE,KAAK;SACb,CAAA;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAC/F,CAAC"}
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,10 @@ export interface BackendStatus {
30
30
  state: BackendState;
31
31
  /** Failure class when degraded: AUTH | QUOTA | HTTP | NETWORK | CANCELLED */
32
32
  reason?: string;
33
+ /** Epoch ms of the last successful upstream interaction (a relayed request
34
+ * or a recovery probe); absent when the backend has never succeeded. Only
35
+ * meaningful on 'ok' entries — the hub's freshness evidence for consumers. */
36
+ lastOkAt?: number;
33
37
  }
34
38
  export interface RegisterMessage {
35
39
  type: 'register';
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA;AAI7B,MAAM,CAAC,MAAM,SAAS,GAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;AAElF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,WAAW;CACvB,CAAA;AAED,gFAAgF;AAChF,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAQ,eAA0C,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAA;AAC1E,CAAC;AAiHD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS;IAClC,UAAU;IACV,WAAW;IACX,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,OAAO;IACP,YAAY;IACZ,eAAe;IACf,aAAa;IACb,gBAAgB;CACjB,CAAC,CAAA;AAEF,yEAAyE;AACzE,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,IAAI,GAAI,MAA6B,CAAC,IAAI,CAAA;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,MAAwB,CAAA;AACjC,CAAC"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA;AAI7B,MAAM,CAAC,MAAM,SAAS,GAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;AAElF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,WAAW;CACvB,CAAA;AAED,gFAAgF;AAChF,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAQ,eAA0C,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAA;AAC1E,CAAC;AAqHD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS;IAClC,UAAU;IACV,WAAW;IACX,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,OAAO;IACP,YAAY;IACZ,eAAe;IACf,aAAa;IACb,gBAAgB;CACjB,CAAC,CAAA;AAEF,yEAAyE;AACzE,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,IAAI,GAAI,MAA6B,CAAC,IAAI,CAAA;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,MAAwB,CAAA;AACjC,CAAC"}