@genbounty/ailp 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -116,28 +116,25 @@ const response = await wrapLlmCall(
116
116
 
117
117
  ---
118
118
 
119
- ## React hook
119
+ ## React
120
120
 
121
- Import from `@genbounty/ailp/react` to keep React out of the core bundle:
121
+ Import from `@genbounty/ailp/react` to keep React out of the core bundle.
122
122
 
123
- ```tsx
124
- import { createAilp } from "@genbounty/ailp";
125
- import { useAssess } from "@genbounty/ailp/react";
123
+ ### `useAilp()` — recommended
126
124
 
127
- const ailp = createAilp({
128
- baseUrl: "http://localhost:8000",
129
- programId: "your-program-id",
130
- frameworks: ["eu-ai-act"],
131
- });
125
+ One hook: memoized client + `assess` / `result` / `loading` / `error` / `reset`.
126
+ Configure with **environment variables** (Next.js `NEXT_PUBLIC_*`, Vite `VITE_*`) so you do not need `useMemo` or `createAilp` in every component.
127
+
128
+ Each call to `assess()` clears the previous `result` and `error` before the new request, so you do not need to call `reset()` between chat turns. Use `reset()` only when you want to clear the UI without assessing (for example when leaving a view).
129
+
130
+ ```tsx
131
+ import { useAilp } from "@genbounty/ailp/react";
132
132
 
133
133
  function ChatWidget() {
134
- const { assess, result, loading, error } = useAssess(ailp);
134
+ const { assess, result, loading, error } = useAilp();
135
135
 
136
136
  async function handleSend(userMessage: string, llmOutput: string) {
137
- await assess(
138
- [{ role: "user", content: userMessage }],
139
- llmOutput,
140
- );
137
+ await assess([{ role: "user", content: userMessage }], llmOutput);
141
138
  }
142
139
 
143
140
  return (
@@ -155,6 +152,36 @@ function ChatWidget() {
155
152
  }
156
153
  ```
157
154
 
155
+ **Env vars** (override any field by passing options to `useAilp({ ... })` instead):
156
+
157
+ | Variable | Required | Default |
158
+ |----------|----------|---------|
159
+ | `NEXT_PUBLIC_GENBOUNTY_PROGRAM_ID` or `VITE_GENBOUNTY_PROGRAM_ID` | Yes (unless you pass `programId`) | — |
160
+ | `NEXT_PUBLIC_AILP_BASE_URL` or `VITE_AILP_BASE_URL` | No | `http://127.0.0.1:8000` |
161
+ | `NEXT_PUBLIC_AILP_FRAMEWORKS` or `VITE_AILP_FRAMEWORKS` | No | `eu-ai-act` |
162
+
163
+ Frameworks in env: comma-separated (`eu-ai-act,owasp-llm`) or a JSON array string (`["eu-ai-act","owasp-llm"]`).
164
+
165
+ Partial override example:
166
+
167
+ ```tsx
168
+ const { assess, result, loading, error } = useAilp({ programId: "hardcoded-for-demo" });
169
+ ```
170
+
171
+ The hook also returns `ailp` (the underlying `AilpFn`) if you need it outside `assess`.
172
+
173
+ ### `useAssess(ailp)` — advanced
174
+
175
+ If you already have an `AilpFn` from `createAilp()`:
176
+
177
+ ```tsx
178
+ import { createAilp } from "@genbounty/ailp";
179
+ import { useAssess } from "@genbounty/ailp/react";
180
+
181
+ const ailp = createAilp({ baseUrl, programId, frameworks });
182
+ const { assess, result, loading, error } = useAssess(ailp);
183
+ ```
184
+
158
185
  ---
159
186
 
160
187
  ## Framework slugs
package/dist/react.d.ts CHANGED
@@ -1,5 +1,25 @@
1
- import type { AilpAssessResponse, AilpCallOptions, AilpMessage } from "./types.js";
2
1
  import type { AilpFn } from "./ailp.js";
2
+ import type { AilpAssessResponse, AilpCallOptions, AilpMessage, AilpOptions } from "./types.js";
3
+ /**
4
+ * Resolve config from optional overrides + environment variables.
5
+ * Throws if programId cannot be determined.
6
+ */
7
+ export declare function resolveAilpConfigFromEnv(overrides?: Partial<AilpOptions>): AilpOptions;
8
+ /** Optional overrides; omitted fields are read from env (see README). */
9
+ export type UseAilpOptions = Partial<AilpOptions>;
10
+ export type UseAilpResult = UseAssessState & {
11
+ ailp: AilpFn;
12
+ };
13
+ /**
14
+ * One-liner for React apps: memoized `createAilp` + assessment state.
15
+ * Reads `NEXT_PUBLIC_*` (Next.js) or `VITE_*` (Vite) when options are omitted.
16
+ *
17
+ * Env vars:
18
+ * - `NEXT_PUBLIC_AILP_BASE_URL` / `VITE_AILP_BASE_URL` — default `http://127.0.0.1:8000`
19
+ * - `NEXT_PUBLIC_GENBOUNTY_PROGRAM_ID` / `VITE_GENBOUNTY_PROGRAM_ID` — **required** unless you pass `programId`
20
+ * - `NEXT_PUBLIC_AILP_FRAMEWORKS` / `VITE_AILP_FRAMEWORKS` — comma-separated or JSON array; default `eu-ai-act`
21
+ */
22
+ export declare function useAilp(options?: UseAilpOptions): UseAilpResult;
3
23
  export interface UseAssessState {
4
24
  /** Last successful response, or null if not yet assessed. */
5
25
  result: AilpAssessResponse | null;
@@ -7,9 +27,9 @@ export interface UseAssessState {
7
27
  loading: boolean;
8
28
  /** Last error thrown by assess, or null. */
9
29
  error: Error | null;
10
- /** Submit messages and LLM output for assessment. Returns the response, or null on error. */
30
+ /** Submit messages and LLM output for assessment. Returns the response, or null on error. Clears any previous result and error before the request starts. */
11
31
  assess: (messages: AilpMessage[], output: string, options?: AilpCallOptions) => Promise<AilpAssessResponse | null>;
12
- /** Clear result and error back to initial state. */
32
+ /** Clear result and error without starting an assessment (e.g. leaving a screen). */
13
33
  reset: () => void;
14
34
  }
15
35
  export declare function useAssess(ailp: AilpFn): UseAssessState;
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClC,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,6FAA6F;IAC7F,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACnH,oDAAoD;IACpD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAkCtD"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EAEf,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AAwCpB;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAiCtF;AAaD,yEAAyE;AACzE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElD,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAsB/D;AAMD,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClC,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,6JAA6J;IAC7J,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACnH,qFAAqF;IACrF,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAmCtD"}
package/dist/react.js CHANGED
@@ -1,28 +1,132 @@
1
1
  /**
2
- * React hook for AILP assess.
2
+ * React hooks for AILP assess.
3
3
  * Import from "@genbounty/ailp/react" to keep React out of the main bundle.
4
4
  *
5
- * @example
5
+ * @example Recommended — env-driven Next.js / Vite (no useMemo boilerplate)
6
+ * import { useAilp } from "@genbounty/ailp/react";
7
+ *
8
+ * function ChatWidget() {
9
+ * const { assess, result, loading, error, reset } = useAilp();
10
+ * // ...
11
+ * }
12
+ *
13
+ * @example Advanced — reuse an existing AilpFn
6
14
  * import { createAilp } from "@genbounty/ailp";
7
15
  * import { useAssess } from "@genbounty/ailp/react";
8
16
  *
9
- * const ailp = createAilp({ baseUrl: "...", programId: "...", frameworks: ["eu-ai-act"] });
17
+ * const ailp = createAilp({ baseUrl, programId, frameworks });
18
+ * const { assess, result, loading, error } = useAssess(ailp);
19
+ */
20
+ import { useCallback, useMemo, useState } from "react";
21
+ import { createAilp } from "./ailp.js";
22
+ // -------------------------------------------------------------------------
23
+ // Env helpers (Next.js NEXT_PUBLIC_*, Vite VITE_*)
24
+ // -------------------------------------------------------------------------
25
+ function getNodeEnv() {
26
+ const g = globalThis;
27
+ return g.process?.env;
28
+ }
29
+ function readEnv(key) {
30
+ const v = getNodeEnv()?.[key];
31
+ if (v != null && v !== "")
32
+ return v;
33
+ try {
34
+ const im = import.meta;
35
+ const v = im.env?.[key];
36
+ if (typeof v === "string" && v !== "")
37
+ return v;
38
+ }
39
+ catch {
40
+ /* import.meta unavailable */
41
+ }
42
+ return undefined;
43
+ }
44
+ function parseFrameworksFromEnv(raw) {
45
+ if (raw == null || raw.trim() === "")
46
+ return undefined;
47
+ const t = raw.trim();
48
+ if (t.startsWith("[")) {
49
+ try {
50
+ const j = JSON.parse(t);
51
+ if (Array.isArray(j) && j.every((x) => typeof x === "string")) {
52
+ return j;
53
+ }
54
+ }
55
+ catch {
56
+ /* fall through */
57
+ }
58
+ }
59
+ return t.split(",").map((s) => s.trim()).filter(Boolean);
60
+ }
61
+ /**
62
+ * Resolve config from optional overrides + environment variables.
63
+ * Throws if programId cannot be determined.
64
+ */
65
+ export function resolveAilpConfigFromEnv(overrides) {
66
+ const baseUrl = overrides?.baseUrl ??
67
+ readEnv("NEXT_PUBLIC_AILP_BASE_URL") ??
68
+ readEnv("VITE_AILP_BASE_URL") ??
69
+ "http://127.0.0.1:8000";
70
+ const programIdRaw = overrides?.programId ??
71
+ readEnv("NEXT_PUBLIC_GENBOUNTY_PROGRAM_ID") ??
72
+ readEnv("VITE_GENBOUNTY_PROGRAM_ID");
73
+ if (programIdRaw == null || String(programIdRaw).trim() === "") {
74
+ throw new Error("AILP: missing programId. Set NEXT_PUBLIC_GENBOUNTY_PROGRAM_ID or VITE_GENBOUNTY_PROGRAM_ID, or pass programId to useAilp().");
75
+ }
76
+ let frameworks;
77
+ if (overrides?.frameworks != null) {
78
+ frameworks = overrides.frameworks;
79
+ }
80
+ else {
81
+ const raw = readEnv("NEXT_PUBLIC_AILP_FRAMEWORKS") ?? readEnv("VITE_AILP_FRAMEWORKS");
82
+ frameworks = parseFrameworksFromEnv(raw) ?? ["eu-ai-act"];
83
+ }
84
+ return {
85
+ baseUrl: baseUrl.replace(/\/$/, ""),
86
+ programId: String(programIdRaw),
87
+ frameworks,
88
+ timeoutMs: overrides?.timeoutMs,
89
+ };
90
+ }
91
+ function frameworksDepKey(fw) {
92
+ if (fw === undefined)
93
+ return "__env__";
94
+ return Array.isArray(fw) ? JSON.stringify(fw) : String(fw);
95
+ }
96
+ /**
97
+ * One-liner for React apps: memoized `createAilp` + assessment state.
98
+ * Reads `NEXT_PUBLIC_*` (Next.js) or `VITE_*` (Vite) when options are omitted.
10
99
  *
11
- * function ChatWidget() {
12
- * const { assess, result, loading, error } = useAssess(ailp);
13
- * const res = await assess(messages, llmOutput);
14
- * }
100
+ * Env vars:
101
+ * - `NEXT_PUBLIC_AILP_BASE_URL` / `VITE_AILP_BASE_URL` default `http://127.0.0.1:8000`
102
+ * - `NEXT_PUBLIC_GENBOUNTY_PROGRAM_ID` / `VITE_GENBOUNTY_PROGRAM_ID` — **required** unless you pass `programId`
103
+ * - `NEXT_PUBLIC_AILP_FRAMEWORKS` / `VITE_AILP_FRAMEWORKS` — comma-separated or JSON array; default `eu-ai-act`
15
104
  */
16
- import { useCallback, useState } from "react";
105
+ export function useAilp(options) {
106
+ const baseUrl = options?.baseUrl;
107
+ const programId = options?.programId;
108
+ const frameworks = options?.frameworks;
109
+ const timeoutMs = options?.timeoutMs;
110
+ const config = useMemo(() => resolveAilpConfigFromEnv({
111
+ baseUrl,
112
+ programId,
113
+ frameworks,
114
+ timeoutMs,
115
+ }), [baseUrl, programId, frameworksDepKey(frameworks), timeoutMs]);
116
+ const ailp = useMemo(() => createAilp(config), [config]);
117
+ const state = useAssess(ailp);
118
+ return { ...state, ailp };
119
+ }
17
120
  export function useAssess(ailp) {
18
121
  const [result, setResult] = useState(null);
19
122
  const [loading, setLoading] = useState(false);
20
123
  const [error, setError] = useState(null);
21
- const assess = useCallback(async (messages, output, options) => {
22
- setLoading(true);
124
+ const assess = useCallback(async (messages, output, callOptions) => {
125
+ setResult(null);
23
126
  setError(null);
127
+ setLoading(true);
24
128
  try {
25
- const res = await ailp(messages, output, options);
129
+ const res = await ailp(messages, output, callOptions);
26
130
  setResult(res);
27
131
  return res;
28
132
  }
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAiB9C,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,WAAW,CACxB,KAAK,EACH,QAAuB,EACvB,MAAc,EACd,OAAyB,EACW,EAAE;QACtC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAClD,SAAS,CAAC,GAAG,CAAC,CAAC;YACf,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genbounty/ailp",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "TypeScript client for the AILP (AI Log Protocol) LLM compliance risk assessment API.",
5
5
  "type": "module",
6
6
  "exports": {