nowaikit 4.1.5 → 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 (61) hide show
  1. package/README.md +4 -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 +52 -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/docs.d.ts +51 -0
  26. package/dist/tools/docs.d.ts.map +1 -0
  27. package/dist/tools/docs.js +274 -0
  28. package/dist/tools/docs.js.map +1 -0
  29. package/dist/tools/index.d.ts +188 -796
  30. package/dist/tools/index.d.ts.map +1 -1
  31. package/dist/tools/index.js +23 -2
  32. package/dist/tools/index.js.map +1 -1
  33. package/dist/tools/knowledge.d.ts.map +1 -1
  34. package/dist/tools/knowledge.js +9 -3
  35. package/dist/tools/knowledge.js.map +1 -1
  36. package/dist/tools/local-sync.d.ts +55 -0
  37. package/dist/tools/local-sync.d.ts.map +1 -0
  38. package/dist/tools/local-sync.js +210 -0
  39. package/dist/tools/local-sync.js.map +1 -0
  40. package/dist/tools/ml.d.ts +1 -1
  41. package/dist/tools/now-assist.d.ts +11 -145
  42. package/dist/tools/now-assist.d.ts.map +1 -1
  43. package/dist/tools/now-assist.js +50 -110
  44. package/dist/tools/now-assist.js.map +1 -1
  45. package/dist/tools/reporting.d.ts +55 -17
  46. package/dist/tools/reporting.d.ts.map +1 -1
  47. package/dist/tools/reporting.js +24 -15
  48. package/dist/tools/reporting.js.map +1 -1
  49. package/dist/tools-manifest.json +250 -95
  50. package/dist/transport/index.d.ts.map +1 -1
  51. package/dist/transport/index.js +18 -2
  52. package/dist/transport/index.js.map +1 -1
  53. package/dist/utils/permissions.d.ts +10 -5
  54. package/dist/utils/permissions.d.ts.map +1 -1
  55. package/dist/utils/permissions.js +43 -20
  56. package/dist/utils/permissions.js.map +1 -1
  57. package/dist/utils/request-context.d.ts +28 -0
  58. package/dist/utils/request-context.d.ts.map +1 -0
  59. package/dist/utils/request-context.js +49 -0
  60. package/dist/utils/request-context.js.map +1 -0
  61. package/package.json +8 -3
@@ -0,0 +1,28 @@
1
+ export interface DelegatedFlags {
2
+ write?: boolean;
3
+ cmdbWrite?: boolean;
4
+ scripting?: boolean;
5
+ nowAssist?: boolean;
6
+ atf?: boolean;
7
+ }
8
+ export interface DelegatedAuth {
9
+ /** The user's ServiceNow access token (OBO-exchanged upstream). */
10
+ bearerToken?: string;
11
+ /** Instance URL the upstream resolved for this user (multi-instance routing). */
12
+ instanceUrl?: string;
13
+ /** Per-user capability policy resolved by the upstream gateway. */
14
+ flags?: DelegatedFlags;
15
+ /** Resolved tool package / persona (informational). */
16
+ toolPackage?: string;
17
+ /** User identifier (for audit/logging only). */
18
+ user?: string;
19
+ }
20
+ /** True when delegated-auth mode is switched on. */
21
+ export declare function isDelegatedAuthEnabled(): boolean;
22
+ /** Run `fn` with the given delegated-auth context bound for its async lifetime. */
23
+ export declare function runWithDelegatedAuth<T>(ctx: DelegatedAuth, fn: () => T): T;
24
+ /** The current request's delegated-auth context, or undefined outside one. */
25
+ export declare function getDelegatedAuth(): DelegatedAuth | undefined;
26
+ /** Build a delegated-auth context from inbound (lowercased) HTTP headers. */
27
+ export declare function parseDelegatedAuthHeaders(headers: Record<string, string | string[] | undefined>): DelegatedAuth;
28
+ //# sourceMappingURL=request-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/utils/request-context.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,oDAAoD;AACpD,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE1E;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,SAAS,CAE5D;AAED,6EAA6E;AAC7E,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,aAAa,CAmBf"}
@@ -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.5",
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": [