nowaikit 4.1.6 → 4.4.0

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 (57) hide show
  1. package/README.md +3 -3
  2. package/dist/embed.d.ts +37 -0
  3. package/dist/embed.d.ts.map +1 -0
  4. package/dist/embed.js +75 -0
  5. package/dist/embed.js.map +1 -0
  6. package/dist/server.d.ts.map +1 -1
  7. package/dist/server.js +12 -2
  8. package/dist/server.js.map +1 -1
  9. package/dist/servicenow/client.d.ts +13 -0
  10. package/dist/servicenow/client.d.ts.map +1 -1
  11. package/dist/servicenow/client.js +52 -1
  12. package/dist/servicenow/client.js.map +1 -1
  13. package/dist/servicenow/instances.d.ts.map +1 -1
  14. package/dist/servicenow/instances.js +20 -0
  15. package/dist/servicenow/instances.js.map +1 -1
  16. package/dist/tools/blast-radius.d.ts +75 -0
  17. package/dist/tools/blast-radius.d.ts.map +1 -0
  18. package/dist/tools/blast-radius.js +185 -0
  19. package/dist/tools/blast-radius.js.map +1 -0
  20. package/dist/tools/catalog.d.ts.map +1 -1
  21. package/dist/tools/catalog.js +20 -3
  22. package/dist/tools/catalog.js.map +1 -1
  23. package/dist/tools/core.js +2 -2
  24. package/dist/tools/core.js.map +1 -1
  25. package/dist/tools/index.d.ts +147 -779
  26. package/dist/tools/index.d.ts.map +1 -1
  27. package/dist/tools/index.js +16 -2
  28. package/dist/tools/index.js.map +1 -1
  29. package/dist/tools/knowledge.d.ts.map +1 -1
  30. package/dist/tools/knowledge.js +9 -3
  31. package/dist/tools/knowledge.js.map +1 -1
  32. package/dist/tools/local-sync.d.ts +55 -0
  33. package/dist/tools/local-sync.d.ts.map +1 -0
  34. package/dist/tools/local-sync.js +210 -0
  35. package/dist/tools/local-sync.js.map +1 -0
  36. package/dist/tools/ml.d.ts +1 -1
  37. package/dist/tools/now-assist.d.ts +11 -145
  38. package/dist/tools/now-assist.d.ts.map +1 -1
  39. package/dist/tools/now-assist.js +50 -110
  40. package/dist/tools/now-assist.js.map +1 -1
  41. package/dist/tools/reporting.d.ts +55 -17
  42. package/dist/tools/reporting.d.ts.map +1 -1
  43. package/dist/tools/reporting.js +24 -15
  44. package/dist/tools/reporting.js.map +1 -1
  45. package/dist/tools-manifest.json +204 -95
  46. package/dist/transport/index.d.ts.map +1 -1
  47. package/dist/transport/index.js +18 -2
  48. package/dist/transport/index.js.map +1 -1
  49. package/dist/utils/permissions.d.ts +10 -5
  50. package/dist/utils/permissions.d.ts.map +1 -1
  51. package/dist/utils/permissions.js +43 -20
  52. package/dist/utils/permissions.js.map +1 -1
  53. package/dist/utils/request-context.d.ts +28 -0
  54. package/dist/utils/request-context.d.ts.map +1 -0
  55. package/dist/utils/request-context.js +49 -0
  56. package/dist/utils/request-context.js.map +1 -0
  57. package/package.json +8 -3
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Per-request delegated-auth context (DELEGATED_AUTH mode).
3
+ *
4
+ * When NowAIKit runs behind the NowAIKit Gateway (or any trusted upstream that
5
+ * performs per-user identity), each inbound HTTP request can carry the user's
6
+ * ServiceNow token and a resolved permission policy. This module threads that
7
+ * per-request context to the ServiceNow client and the permission checks via
8
+ * AsyncLocalStorage — without changing any tool signatures.
9
+ *
10
+ * Fully opt-in: only active when DELEGATED_AUTH=true AND a context is present.
11
+ * In stdio / normal single-user mode there is no context, so behaviour is
12
+ * identical to before (env-var driven).
13
+ */
14
+ import { AsyncLocalStorage } from 'node:async_hooks';
15
+ const store = new AsyncLocalStorage();
16
+ /** True when delegated-auth mode is switched on. */
17
+ export function isDelegatedAuthEnabled() {
18
+ return process.env.DELEGATED_AUTH === 'true';
19
+ }
20
+ /** Run `fn` with the given delegated-auth context bound for its async lifetime. */
21
+ export function runWithDelegatedAuth(ctx, fn) {
22
+ return store.run(ctx, fn);
23
+ }
24
+ /** The current request's delegated-auth context, or undefined outside one. */
25
+ export function getDelegatedAuth() {
26
+ return store.getStore();
27
+ }
28
+ /** Build a delegated-auth context from inbound (lowercased) HTTP headers. */
29
+ export function parseDelegatedAuthHeaders(headers) {
30
+ const h = (k) => {
31
+ const v = headers[k];
32
+ return Array.isArray(v) ? v[0] : v;
33
+ };
34
+ const bool = (k) => h(k) === 'true';
35
+ return {
36
+ bearerToken: h('x-servicenow-token'),
37
+ instanceUrl: h('x-servicenow-instance-url'),
38
+ toolPackage: h('x-nowaikit-tool-package'),
39
+ user: h('x-nowaikit-user'),
40
+ flags: {
41
+ write: bool('x-nowaikit-write-enabled'),
42
+ cmdbWrite: bool('x-nowaikit-cmdb-write-enabled'),
43
+ scripting: bool('x-nowaikit-scripting-enabled'),
44
+ atf: bool('x-nowaikit-atf-enabled'),
45
+ nowAssist: bool('x-nowaikit-now-assist-enabled'),
46
+ },
47
+ };
48
+ }
49
+ //# sourceMappingURL=request-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/utils/request-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAuBrD,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAiB,CAAC;AAErD,oDAAoD;AACpD,MAAM,UAAU,sBAAsB;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC;AAC/C,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,oBAAoB,CAAI,GAAkB,EAAE,EAAW;IACrE,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB;IAC9B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,yBAAyB,CACvC,OAAsD;IAEtD,MAAM,CAAC,GAAG,CAAC,CAAS,EAAsB,EAAE;QAC1C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IACrD,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,oBAAoB,CAAC;QACpC,WAAW,EAAE,CAAC,CAAC,2BAA2B,CAAC;QAC3C,WAAW,EAAE,CAAC,CAAC,yBAAyB,CAAC;QACzC,IAAI,EAAE,CAAC,CAAC,iBAAiB,CAAC;QAC1B,KAAK,EAAE;YACL,KAAK,EAAE,IAAI,CAAC,0BAA0B,CAAC;YACvC,SAAS,EAAE,IAAI,CAAC,+BAA+B,CAAC;YAChD,SAAS,EAAE,IAAI,CAAC,8BAA8B,CAAC;YAC/C,GAAG,EAAE,IAAI,CAAC,wBAAwB,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,+BAA+B,CAAC;SACjD;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "nowaikit",
3
3
  "mcpName": "io.github.aartiq/nowaikit",
4
- "version": "4.1.6",
5
- "description": "The Most Comprehensive ServiceNow AI Toolkit \u2014 450+ MCP tools + 26 AI capabilities (scan, review, build, ops, docs) + direct BYOK mode. Integrates with Claude, ChatGPT, Gemini, Cursor, GitHub Copilot and any LLM.",
4
+ "version": "4.4.0",
5
+ "description": "The Most Comprehensive ServiceNow AI Toolkit — 450+ MCP tools + 26 AI capabilities (scan, review, build, ops, docs) + direct BYOK mode. Integrates with Claude, ChatGPT, Gemini, Cursor, GitHub Copilot and any LLM.",
6
6
  "main": "dist/server.js",
7
7
  "types": "dist/server.d.ts",
8
8
  "exports": {
@@ -10,6 +10,10 @@
10
10
  "types": "./dist/server.d.ts",
11
11
  "import": "./dist/server.js"
12
12
  },
13
+ "./embed": {
14
+ "types": "./dist/embed.d.ts",
15
+ "import": "./dist/embed.js"
16
+ },
13
17
  "./sdk": {
14
18
  "types": "./dist/sdk/index.d.ts",
15
19
  "import": "./dist/sdk/index.js"
@@ -24,7 +28,8 @@
24
28
  }
25
29
  },
26
30
  "bin": {
27
- "nowaikit": "dist/cli/index.js"
31
+ "nowaikit": "dist/cli/index.js",
32
+ "nowaikit-mcp": "dist/server.js"
28
33
  },
29
34
  "type": "module",
30
35
  "files": [