@hed-hog/core 0.0.400 → 0.0.402
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/dist/access-log/access-log.interceptor.d.ts +10 -0
- package/dist/access-log/access-log.interceptor.d.ts.map +1 -1
- package/dist/access-log/access-log.interceptor.js +15 -1
- package/dist/access-log/access-log.interceptor.js.map +1 -1
- package/dist/ai/ai.controller.d.ts +2 -0
- package/dist/ai/ai.controller.d.ts.map +1 -1
- package/dist/ai/ai.service.d.ts +86 -2
- package/dist/ai/ai.service.d.ts.map +1 -1
- package/dist/ai/ai.service.js +304 -23
- package/dist/ai/ai.service.js.map +1 -1
- package/dist/ai-instruction/ai-prompt-resolver.service.d.ts +12 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.d.ts.map +1 -1
- package/dist/ai-instruction/ai-prompt-resolver.service.js +26 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.js.map +1 -1
- package/dist/core.module.d.ts.map +1 -1
- package/dist/core.module.js +3 -0
- package/dist/core.module.js.map +1 -1
- package/dist/document-kit/document-kit.module.d.ts +3 -0
- package/dist/document-kit/document-kit.module.d.ts.map +1 -0
- package/dist/document-kit/document-kit.module.js +24 -0
- package/dist/document-kit/document-kit.module.js.map +1 -0
- package/dist/document-kit/document-kit.registry.d.ts +55 -0
- package/dist/document-kit/document-kit.registry.d.ts.map +1 -0
- package/dist/document-kit/document-kit.registry.js +91 -0
- package/dist/document-kit/document-kit.registry.js.map +1 -0
- package/dist/document-kit/document-kit.service.d.ts +49 -0
- package/dist/document-kit/document-kit.service.d.ts.map +1 -0
- package/dist/document-kit/document-kit.service.js +135 -0
- package/dist/document-kit/document-kit.service.js.map +1 -0
- package/dist/file/file-upload-ticket.service.d.ts +1 -1
- package/dist/file/file.controller.d.ts +3 -3
- package/dist/file/file.service.d.ts +136 -13
- package/dist/file/file.service.d.ts.map +1 -1
- package/dist/file/file.service.js +297 -27
- package/dist/file/file.service.js.map +1 -1
- package/dist/file/mcp-file-source.schema.d.ts.map +1 -1
- package/dist/file/mcp-file-source.schema.js +8 -5
- package/dist/file/mcp-file-source.schema.js.map +1 -1
- package/dist/file/provider/abstract.provider.d.ts +33 -0
- package/dist/file/provider/abstract.provider.d.ts.map +1 -1
- package/dist/file/provider/abstract.provider.js +9 -0
- package/dist/file/provider/abstract.provider.js.map +1 -1
- package/dist/file/provider/s3-multipart.util.d.ts +17 -0
- package/dist/file/provider/s3-multipart.util.d.ts.map +1 -0
- package/dist/file/provider/s3-multipart.util.js +88 -0
- package/dist/file/provider/s3-multipart.util.js.map +1 -0
- package/dist/file/provider/s3.provider.d.ts +9 -1
- package/dist/file/provider/s3.provider.d.ts.map +1 -1
- package/dist/file/provider/s3.provider.js +16 -0
- package/dist/file/provider/s3.provider.js.map +1 -1
- package/dist/file/provider/spaces.provider.d.ts +10 -1
- package/dist/file/provider/spaces.provider.d.ts.map +1 -1
- package/dist/file/provider/spaces.provider.js +17 -0
- package/dist/file/provider/spaces.provider.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/integration-profile/integration-profile.controller.d.ts +1 -0
- package/dist/integration-profile/integration-profile.controller.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.secrets.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.secrets.js +26 -0
- package/dist/integration-profile/integration-profile.secrets.js.map +1 -1
- package/dist/integration-profile/integration-profile.service.d.ts +1 -0
- package/dist/integration-profile/integration-profile.service.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.service.js +3 -3
- package/dist/integration-profile/integration-profile.service.js.map +1 -1
- package/dist/integration-profile/testers/ai.testers.d.ts.map +1 -1
- package/dist/integration-profile/testers/ai.testers.js +46 -8
- package/dist/integration-profile/testers/ai.testers.js.map +1 -1
- package/dist/integration-profile/testers/http-probe.d.ts.map +1 -1
- package/dist/integration-profile/testers/http-probe.js +5 -3
- package/dist/integration-profile/testers/http-probe.js.map +1 -1
- package/dist/integration-profile/testers/integration-tester.types.d.ts +5 -0
- package/dist/integration-profile/testers/integration-tester.types.d.ts.map +1 -1
- package/dist/mail/mail.service.d.ts.map +1 -1
- package/dist/mail/mail.service.js +16 -1
- package/dist/mail/mail.service.js.map +1 -1
- package/dist/mcp/mcp-server.service.d.ts.map +1 -1
- package/dist/mcp/mcp-server.service.js +10 -1
- package/dist/mcp/mcp-server.service.js.map +1 -1
- package/dist/mcp/mcp.module.d.ts.map +1 -1
- package/dist/mcp/mcp.module.js +2 -0
- package/dist/mcp/mcp.module.js.map +1 -1
- package/dist/mcp/tools/core-access-log.mcp-tools.d.ts +17 -0
- package/dist/mcp/tools/core-access-log.mcp-tools.d.ts.map +1 -0
- package/dist/mcp/tools/core-access-log.mcp-tools.js +74 -0
- package/dist/mcp/tools/core-access-log.mcp-tools.js.map +1 -0
- package/dist/mcp/tools/core-files.mcp-tools.js +4 -4
- package/dist/mcp/tools/core-files.mcp-tools.js.map +1 -1
- package/dist/meeting/meeting-provider.registry.d.ts +72 -0
- package/dist/meeting/meeting-provider.registry.d.ts.map +1 -1
- package/dist/meeting/meeting-provider.registry.js.map +1 -1
- package/dist/oauth/oauth-token-broker.service.d.ts +50 -1
- package/dist/oauth/oauth-token-broker.service.d.ts.map +1 -1
- package/dist/oauth/oauth-token-broker.service.js +105 -3
- package/dist/oauth/oauth-token-broker.service.js.map +1 -1
- package/dist/oauth/providers/microsoft-entra-id.provider.d.ts +6 -0
- package/dist/oauth/providers/microsoft-entra-id.provider.d.ts.map +1 -1
- package/dist/oauth/providers/microsoft-entra-id.provider.js +30 -4
- package/dist/oauth/providers/microsoft-entra-id.provider.js.map +1 -1
- package/dist/pdf/document/charts/chart-bar.d.ts +24 -0
- package/dist/pdf/document/charts/chart-bar.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-bar.js +117 -0
- package/dist/pdf/document/charts/chart-bar.js.map +1 -0
- package/dist/pdf/document/charts/chart-donut.d.ts +16 -0
- package/dist/pdf/document/charts/chart-donut.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-donut.js +89 -0
- package/dist/pdf/document/charts/chart-donut.js.map +1 -0
- package/dist/pdf/document/charts/chart-gauge.d.ts +15 -0
- package/dist/pdf/document/charts/chart-gauge.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-gauge.js +60 -0
- package/dist/pdf/document/charts/chart-gauge.js.map +1 -0
- package/dist/pdf/document/charts/chart-line.d.ts +29 -0
- package/dist/pdf/document/charts/chart-line.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-line.js +89 -0
- package/dist/pdf/document/charts/chart-line.js.map +1 -0
- package/dist/pdf/document/charts/chart-primitives.d.ts +64 -0
- package/dist/pdf/document/charts/chart-primitives.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-primitives.js +110 -0
- package/dist/pdf/document/charts/chart-primitives.js.map +1 -0
- package/dist/pdf/document/charts/chart-radar.d.ts +13 -0
- package/dist/pdf/document/charts/chart-radar.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-radar.js +83 -0
- package/dist/pdf/document/charts/chart-radar.js.map +1 -0
- package/dist/pdf/document/charts/chart-scale.d.ts +39 -0
- package/dist/pdf/document/charts/chart-scale.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-scale.js +118 -0
- package/dist/pdf/document/charts/chart-scale.js.map +1 -0
- package/dist/pdf/document/charts/index.d.ts +8 -0
- package/dist/pdf/document/charts/index.d.ts.map +1 -0
- package/dist/pdf/document/charts/index.js +24 -0
- package/dist/pdf/document/charts/index.js.map +1 -0
- package/dist/pdf/document/index.d.ts +8 -0
- package/dist/pdf/document/index.d.ts.map +1 -0
- package/dist/pdf/document/index.js +24 -0
- package/dist/pdf/document/index.js.map +1 -0
- package/dist/pdf/document/pdf-document.chrome.d.ts +20 -0
- package/dist/pdf/document/pdf-document.chrome.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.chrome.js +36 -0
- package/dist/pdf/document/pdf-document.chrome.js.map +1 -0
- package/dist/pdf/document/pdf-document.css.d.ts +20 -0
- package/dist/pdf/document/pdf-document.css.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.css.js +327 -0
- package/dist/pdf/document/pdf-document.css.js.map +1 -0
- package/dist/pdf/document/pdf-document.renderer.d.ts +10 -0
- package/dist/pdf/document/pdf-document.renderer.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.renderer.js +226 -0
- package/dist/pdf/document/pdf-document.renderer.js.map +1 -0
- package/dist/pdf/document/pdf-document.service.d.ts +27 -0
- package/dist/pdf/document/pdf-document.service.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.service.js +81 -0
- package/dist/pdf/document/pdf-document.service.js.map +1 -0
- package/dist/pdf/document/pdf-document.theme.d.ts +41 -0
- package/dist/pdf/document/pdf-document.theme.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.theme.js +105 -0
- package/dist/pdf/document/pdf-document.theme.js.map +1 -0
- package/dist/pdf/document/pdf-document.types.d.ts +164 -0
- package/dist/pdf/document/pdf-document.types.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.types.js +18 -0
- package/dist/pdf/document/pdf-document.types.js.map +1 -0
- package/dist/pdf/pdf.module.d.ts.map +1 -1
- package/dist/pdf/pdf.module.js +3 -2
- package/dist/pdf/pdf.module.js.map +1 -1
- package/dist/pdf/pdf.service.d.ts +75 -1
- package/dist/pdf/pdf.service.d.ts.map +1 -1
- package/dist/pdf/pdf.service.js +167 -63
- package/dist/pdf/pdf.service.js.map +1 -1
- package/dist/pdf/templates/commercial-proposal.template.d.ts +96 -0
- package/dist/pdf/templates/commercial-proposal.template.d.ts.map +1 -0
- package/dist/pdf/templates/commercial-proposal.template.js +276 -0
- package/dist/pdf/templates/commercial-proposal.template.js.map +1 -0
- package/dist/setting/favicon.controller.d.ts +26 -0
- package/dist/setting/favicon.controller.d.ts.map +1 -0
- package/dist/setting/favicon.controller.js +130 -0
- package/dist/setting/favicon.controller.js.map +1 -0
- package/dist/setting/setting.module.d.ts.map +1 -1
- package/dist/setting/setting.module.js +2 -1
- package/dist/setting/setting.module.js.map +1 -1
- package/dist/setting/setting.service.d.ts.map +1 -1
- package/dist/setting/setting.service.js +3 -0
- package/dist/setting/setting.service.js.map +1 -1
- package/dist/task/task.service.d.ts +6 -0
- package/dist/task/task.service.d.ts.map +1 -1
- package/dist/task/task.service.js +44 -13
- package/dist/task/task.service.js.map +1 -1
- package/dist/whatsapp-sender/whatsapp-sender.service.d.ts +35 -2
- package/dist/whatsapp-sender/whatsapp-sender.service.d.ts.map +1 -1
- package/dist/whatsapp-sender/whatsapp-sender.service.js +107 -22
- package/dist/whatsapp-sender/whatsapp-sender.service.js.map +1 -1
- package/hedhog/data/integration_type.yaml +6 -0
- package/hedhog/data/route.yaml +8 -0
- package/hedhog/data/setting_group.yaml +52 -0
- package/hedhog/frontend/app/configurations/[slug]/components/setting-field.test.tsx.ejs +85 -2
- package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +576 -491
- package/hedhog/frontend/app/users/simulate-access-dialog.test.tsx.ejs +29 -50
- package/hedhog/frontend/app/users/simulate-access-dialog.tsx.ejs +146 -50
- package/hedhog/frontend/messages/en.json +81 -2
- package/hedhog/frontend/messages/pt.json +81 -2
- package/hedhog/table/file.yaml +3 -1
- package/package.json +5 -5
- package/src/access-log/access-log.interceptor.spec.ts +50 -0
- package/src/access-log/access-log.interceptor.ts +18 -0
- package/src/ai/ai-attachment.fragments.spec.ts +56 -3
- package/src/ai/ai.service.responses.spec.ts +429 -0
- package/src/ai/ai.service.ts +409 -27
- package/src/ai-instruction/ai-prompt-resolver.service.spec.ts +44 -0
- package/src/ai-instruction/ai-prompt-resolver.service.ts +29 -0
- package/src/core.module.ts +3 -0
- package/src/document-kit/document-kit.module.ts +12 -0
- package/src/document-kit/document-kit.registry.ts +125 -0
- package/src/document-kit/document-kit.service.spec.ts +156 -0
- package/src/document-kit/document-kit.service.ts +173 -0
- package/src/file/file-direct-upload.spec.ts +344 -0
- package/src/file/file.service.spec.ts +168 -1
- package/src/file/file.service.ts +435 -36
- package/src/file/mcp-file-source.schema.ts +8 -5
- package/src/file/provider/abstract.provider.ts +57 -0
- package/src/file/provider/s3-multipart.spec.ts +123 -0
- package/src/file/provider/s3-multipart.util.ts +126 -0
- package/src/file/provider/s3.provider.ts +65 -1
- package/src/file/provider/spaces.provider.ts +67 -1
- package/src/index.ts +5 -0
- package/src/integration-profile/integration-profile.secrets.ts +26 -0
- package/src/integration-profile/integration-profile.service.ts +1 -0
- package/src/integration-profile/testers/ai.testers.ts +70 -5
- package/src/integration-profile/testers/http-probe.ts +5 -3
- package/src/integration-profile/testers/integration-tester.types.ts +5 -0
- package/src/integration-profile/testers/oauth.testers.spec.ts +13 -0
- package/src/integration-profile/testers/remaining.testers.spec.ts +65 -1
- package/src/integration-profile/testers/tester-coverage.spec.ts +12 -0
- package/src/mail/mail.service.spec.ts +25 -0
- package/src/mail/mail.service.ts +18 -1
- package/src/mcp/mcp-server.service.spec.ts +16 -0
- package/src/mcp/mcp-server.service.ts +10 -1
- package/src/mcp/mcp.module.ts +2 -0
- package/src/mcp/tools/core-access-log.mcp-tools.ts +66 -0
- package/src/mcp/tools/core-files.mcp-tools.ts +4 -4
- package/src/meeting/meeting-provider.registry.ts +80 -0
- package/src/oauth/oauth-token-broker.service.spec.ts +108 -0
- package/src/oauth/oauth-token-broker.service.ts +129 -2
- package/src/oauth/providers/microsoft-entra-id.provider.spec.ts +133 -0
- package/src/oauth/providers/microsoft-entra-id.provider.ts +29 -2
- package/src/pdf/document/charts/chart-bar.ts +217 -0
- package/src/pdf/document/charts/chart-donut.ts +163 -0
- package/src/pdf/document/charts/chart-gauge.ts +94 -0
- package/src/pdf/document/charts/chart-line.ts +159 -0
- package/src/pdf/document/charts/chart-primitives.ts +188 -0
- package/src/pdf/document/charts/chart-radar.ts +136 -0
- package/src/pdf/document/charts/chart-scale.spec.ts +93 -0
- package/src/pdf/document/charts/chart-scale.ts +141 -0
- package/src/pdf/document/charts/charts.spec.ts +157 -0
- package/src/pdf/document/charts/index.ts +7 -0
- package/src/pdf/document/index.ts +7 -0
- package/src/pdf/document/pdf-document.chrome.ts +38 -0
- package/src/pdf/document/pdf-document.css.ts +326 -0
- package/src/pdf/document/pdf-document.renderer.spec.ts +172 -0
- package/src/pdf/document/pdf-document.renderer.ts +317 -0
- package/src/pdf/document/pdf-document.service.ts +77 -0
- package/src/pdf/document/pdf-document.theme.ts +146 -0
- package/src/pdf/document/pdf-document.types.ts +149 -0
- package/src/pdf/pdf.module.ts +3 -2
- package/src/pdf/pdf.service.spec.ts +131 -0
- package/src/pdf/pdf.service.ts +256 -82
- package/src/pdf/templates/commercial-proposal.template.spec.ts +177 -0
- package/src/pdf/templates/commercial-proposal.template.ts +400 -0
- package/src/setting/favicon.controller.spec.ts +92 -0
- package/src/setting/favicon.controller.ts +135 -0
- package/src/setting/setting.module.ts +2 -1
- package/src/setting/setting.service.ts +3 -0
- package/src/task/task.service.spec.ts +77 -1
- package/src/task/task.service.ts +58 -14
- package/src/whatsapp-sender/whatsapp-sender.service.spec.ts +263 -0
- package/src/whatsapp-sender/whatsapp-sender.service.ts +154 -16
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { AccessLogService } from './access-log.service';
|
|
4
|
+
/**
|
|
5
|
+
* Metadado (handler ou classe) que tira a rota do access log.
|
|
6
|
+
*
|
|
7
|
+
* Existe para superficies cujo valor depende de NAO saber quem chamou — o canal
|
|
8
|
+
* de denuncias da library integrity: uma linha com IP, user agent e horario de
|
|
9
|
+
* `POST /integrity/public/reports` identificaria o denunciante. Quem usa aplica
|
|
10
|
+
* `SetMetadata('skipAccessLog', true)` direto, sem importar daqui, para uma
|
|
11
|
+
* library nao exigir esta versao do core (um core antigo apenas continua logando).
|
|
12
|
+
*/
|
|
13
|
+
export declare const SKIP_ACCESS_LOG_KEY = "skipAccessLog";
|
|
4
14
|
export declare class AccessLogInterceptor implements NestInterceptor {
|
|
5
15
|
private readonly accessLogService;
|
|
6
16
|
constructor(accessLogService: AccessLogService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-log.interceptor.d.ts","sourceRoot":"","sources":["../../src/access-log/access-log.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAEhB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAO,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,qBACa,oBAAqB,YAAW,eAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAE/D,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"access-log.interceptor.d.ts","sourceRoot":"","sources":["../../src/access-log/access-log.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAEhB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAO,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAEnD,qBACa,oBAAqB,YAAW,eAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAE/D,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC;CAqCzE"}
|
|
@@ -9,10 +9,20 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.AccessLogInterceptor = void 0;
|
|
12
|
+
exports.AccessLogInterceptor = exports.SKIP_ACCESS_LOG_KEY = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const rxjs_1 = require("rxjs");
|
|
15
15
|
const access_log_service_1 = require("./access-log.service");
|
|
16
|
+
/**
|
|
17
|
+
* Metadado (handler ou classe) que tira a rota do access log.
|
|
18
|
+
*
|
|
19
|
+
* Existe para superficies cujo valor depende de NAO saber quem chamou — o canal
|
|
20
|
+
* de denuncias da library integrity: uma linha com IP, user agent e horario de
|
|
21
|
+
* `POST /integrity/public/reports` identificaria o denunciante. Quem usa aplica
|
|
22
|
+
* `SetMetadata('skipAccessLog', true)` direto, sem importar daqui, para uma
|
|
23
|
+
* library nao exigir esta versao do core (um core antigo apenas continua logando).
|
|
24
|
+
*/
|
|
25
|
+
exports.SKIP_ACCESS_LOG_KEY = 'skipAccessLog';
|
|
16
26
|
let AccessLogInterceptor = class AccessLogInterceptor {
|
|
17
27
|
constructor(accessLogService) {
|
|
18
28
|
this.accessLogService = accessLogService;
|
|
@@ -27,6 +37,10 @@ let AccessLogInterceptor = class AccessLogInterceptor {
|
|
|
27
37
|
if (path.startsWith('/mcp')) {
|
|
28
38
|
return next.handle();
|
|
29
39
|
}
|
|
40
|
+
if (Reflect.getMetadata(exports.SKIP_ACCESS_LOG_KEY, context.getHandler()) === true ||
|
|
41
|
+
Reflect.getMetadata(exports.SKIP_ACCESS_LOG_KEY, context.getClass()) === true) {
|
|
42
|
+
return next.handle();
|
|
43
|
+
}
|
|
30
44
|
return next.handle().pipe((0, rxjs_1.tap)(() => {
|
|
31
45
|
var _a, _b, _c, _d, _e, _f;
|
|
32
46
|
const userId = (_a = request.auth) === null || _a === void 0 ? void 0 : _a.sub;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-log.interceptor.js","sourceRoot":"","sources":["../../src/access-log/access-log.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,+BAAuC;AACvC,6DAAwD;
|
|
1
|
+
{"version":3,"file":"access-log.interceptor.js","sourceRoot":"","sources":["../../src/access-log/access-log.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,+BAAuC;AACvC,6DAAwD;AAExD;;;;;;;;GAQG;AACU,QAAA,mBAAmB,GAAG,eAAe,CAAC;AAG5C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAEnE,SAAS,CAAC,OAAyB,EAAE,IAAiB;;QACpD,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,IAAI,GAAW,MAAA,OAAO,CAAC,GAAG,mCAAI,EAAE,CAAC;QAEvC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,IACE,OAAO,CAAC,WAAW,CAAC,2BAAmB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,IAAI;YACvE,OAAO,CAAC,WAAW,CAAC,2BAAmB,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,EACrE,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,UAAG,EAAC,GAAG,EAAE;;YACP,MAAM,MAAM,GAAuB,MAAA,OAAO,CAAC,IAAI,0CAAE,GAAG,CAAC;YACrD,sEAAsE;YACtE,8DAA8D;YAC9D,MAAM,kBAAkB,GACtB,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,GAAG,MAAK,IAAI,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7D,kFAAkF;YAClF,0EAA0E;YAC1E,0DAA0D;YAC1D,MAAM,EAAE,GAAW,MAAA,OAAO,CAAC,EAAE,mCAAI,EAAE,CAAC;YACpC,MAAM,SAAS,GAAW,MAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAY,mCAAI,EAAE,CAAC;YAC1E,MAAM,MAAM,GAAW,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAC;YAE5C,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAChG,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAxCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAEoC,qCAAgB;GADpD,oBAAoB,CAwChC"}
|
|
@@ -14,6 +14,7 @@ export declare class AiController {
|
|
|
14
14
|
provider: "openai" | "deepseek" | "gemini" | "claude";
|
|
15
15
|
model: string;
|
|
16
16
|
content: string;
|
|
17
|
+
attachmentDelivery: import("./ai.service").AiAttachmentDelivery;
|
|
17
18
|
}>;
|
|
18
19
|
createAgent(data: CreateAgentDTO): Promise<{
|
|
19
20
|
id: number;
|
|
@@ -79,6 +80,7 @@ export declare class AiController {
|
|
|
79
80
|
provider: "openai" | "deepseek" | "gemini" | "claude";
|
|
80
81
|
model: string;
|
|
81
82
|
content: string;
|
|
83
|
+
attachmentDelivery: import("./ai.service").AiAttachmentDelivery;
|
|
82
84
|
}>;
|
|
83
85
|
editRichtextHtml(data: RichtextEditHtmlDTO): Promise<import("./richtext-ai.service").RichtextAiEditResult>;
|
|
84
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.controller.d.ts","sourceRoot":"","sources":["../../src/ai/ai.controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,qBAEa,YAAY;IAGrB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,SAAS,EAAE,SAAS,EAEpB,iBAAiB,EAAE,iBAAiB;IAKjD,IAAI,CAAS,IAAI,EAAE,OAAO,EAAkB,IAAI,CAAC,EAAE,UAAU
|
|
1
|
+
{"version":3,"file":"ai.controller.d.ts","sourceRoot":"","sources":["../../src/ai/ai.controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,qBAEa,YAAY;IAGrB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,SAAS,EAAE,SAAS,EAEpB,iBAAiB,EAAE,iBAAiB;IAKjD,IAAI,CAAS,IAAI,EAAE,OAAO,EAAkB,IAAI,CAAC,EAAE,UAAU;;;;;;IAK7D,WAAW,CAAS,IAAI,EAAE,cAAc;;;;;;;;;;IAKxC,UAAU,CAAe,gBAAgB,KAAA;;;;;;;;;;;;;;;;IAKzC,YAAY,CAAiC,OAAO,EAAE,MAAM;;;;;;;;;;IAK5D,QAAQ,CAAgB,IAAI,EAAE,MAAM;;;;;;;;;;IAKpC,WAAW,CACiB,OAAO,EAAE,MAAM,EACvC,IAAI,EAAE,cAAc;;;;;;;;;;IAMxB,YAAY,CAAS,IAAI,EAAE,SAAS;;;IAMpC,aAAa,CACF,IAAI,EAAE,MAAM,EACnB,IAAI,EAAE,YAAY,EACV,IAAI,CAAC,EAAE,UAAU;;;;;;;IAM7B,gBAAgB,CAAS,IAAI,EAAE,mBAAmB;CAGzD"}
|
package/dist/ai/ai.service.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PaginationDTO } from '@hed-hog/api-pagination';
|
|
2
2
|
import { PrismaService } from '@hed-hog/api-prisma';
|
|
3
|
-
import { OnModuleInit } from '@nestjs/common';
|
|
3
|
+
import { BadRequestException, OnModuleInit } from '@nestjs/common';
|
|
4
4
|
import { AiExecutionService } from '../ai-instruction/ai-execution.service';
|
|
5
5
|
import { AiPromptResolverService, type PromptSource } from '../ai-instruction/ai-prompt-resolver.service';
|
|
6
6
|
import type { TemplateVars } from '../ai-instruction/ai-prompt-template.util';
|
|
@@ -34,6 +34,33 @@ type AiAgentRecord = {
|
|
|
34
34
|
created_at: Date;
|
|
35
35
|
updated_at: Date;
|
|
36
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Como o anexo efetivamente chegou ao modelo na última chamada.
|
|
39
|
+
*
|
|
40
|
+
* Sem isso quem chama só consegue adivinhar — foi exatamente o que o extrator
|
|
41
|
+
* de notas fiscais fazia, deduzindo pelo tamanho do texto do PDF, e por isso
|
|
42
|
+
* insistia em reperguntar ao modelo sobre um anexo que ele nunca recebeu.
|
|
43
|
+
* `unreadable-pdf` e `binary` são os dois casos em que o modelo recebeu um
|
|
44
|
+
* marcador no lugar do documento.
|
|
45
|
+
*/
|
|
46
|
+
export type AiAttachmentDelivery = 'none' | 'image' | 'pdf-document' | 'pdf-text' | 'text' | 'unreadable-pdf' | 'binary';
|
|
47
|
+
export declare function isAttachmentDeliveredToModel(delivery?: AiAttachmentDelivery | null): boolean;
|
|
48
|
+
export declare function isAttachmentDeliveredAsPixels(delivery?: AiAttachmentDelivery | null): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* O setting de um provider aponta para o perfil de outro provider.
|
|
51
|
+
*
|
|
52
|
+
* Classe própria, e não um `BadRequestException` solto, para uma escada de
|
|
53
|
+
* fallback conseguir parar antes de disparar chamadas que vão dar 4xx com
|
|
54
|
+
* certeza — era o que o extrator de notas fiscais fazia oito vezes por upload,
|
|
55
|
+
* engolindo cada uma delas.
|
|
56
|
+
*/
|
|
57
|
+
export declare class AiProfileProviderMismatchError extends BadRequestException {
|
|
58
|
+
readonly requestedProvider: string;
|
|
59
|
+
readonly profileSlug: string;
|
|
60
|
+
readonly profileProviderSlug: string;
|
|
61
|
+
readonly settingSlug: string;
|
|
62
|
+
constructor(requestedProvider: string, profileSlug: string, profileProviderSlug: string, settingSlug: string);
|
|
63
|
+
}
|
|
37
64
|
export declare class AiService implements OnModuleInit {
|
|
38
65
|
private readonly prismaService;
|
|
39
66
|
private readonly settingService;
|
|
@@ -47,6 +74,7 @@ export declare class AiService implements OnModuleInit {
|
|
|
47
74
|
provider: AiProvider;
|
|
48
75
|
model: string;
|
|
49
76
|
content: string;
|
|
77
|
+
attachmentDelivery: AiAttachmentDelivery;
|
|
50
78
|
}>;
|
|
51
79
|
/**
|
|
52
80
|
* Chat driven by prompts stored in `ai_instruction`.
|
|
@@ -139,6 +167,7 @@ export declare class AiService implements OnModuleInit {
|
|
|
139
167
|
provider: AiProvider;
|
|
140
168
|
model: string;
|
|
141
169
|
content: string;
|
|
170
|
+
attachmentDelivery: AiAttachmentDelivery;
|
|
142
171
|
}>;
|
|
143
172
|
getAgentBySlug(slug: string): Promise<AiAgentRecord>;
|
|
144
173
|
extractAttachmentText(file?: MulterFile, fileId?: number): Promise<string>;
|
|
@@ -147,7 +176,7 @@ export declare class AiService implements OnModuleInit {
|
|
|
147
176
|
filename: string;
|
|
148
177
|
mimeType: string;
|
|
149
178
|
bytes: number;
|
|
150
|
-
mode: "
|
|
179
|
+
mode: "text" | "binary" | "image" | "pdf-text";
|
|
151
180
|
textLength: number;
|
|
152
181
|
textSample: string;
|
|
153
182
|
sha256: string;
|
|
@@ -175,10 +204,56 @@ export declare class AiService implements OnModuleInit {
|
|
|
175
204
|
private resolveProviderAndProfile;
|
|
176
205
|
/** Resolves the active AI integration profile's credentials plus its optional model/timeout overrides. */
|
|
177
206
|
private getAiProfile;
|
|
207
|
+
/**
|
|
208
|
+
* "Este provider dá para usar?", sem lançar.
|
|
209
|
+
*
|
|
210
|
+
* Existe para uma escada de fallback perguntar antes de tentar, em vez de
|
|
211
|
+
* gastar uma requisição HTTP por modelo só para descobrir que a credencial
|
|
212
|
+
* nem é daquele provider.
|
|
213
|
+
*/
|
|
214
|
+
isProviderConfigured(provider: AiProvider): Promise<{
|
|
215
|
+
ok: boolean;
|
|
216
|
+
reason?: string;
|
|
217
|
+
}>;
|
|
178
218
|
private loadAiProfileBySlug;
|
|
179
219
|
/** Rejects with a timeout error if `promise` doesn't settle within `ms`. */
|
|
180
220
|
private withTimeout;
|
|
181
221
|
private chatWithOpenAi;
|
|
222
|
+
/**
|
|
223
|
+
* Bytes crus de PDF acima disto não vão inline: base64 infla ~1,37x e a
|
|
224
|
+
* OpenAI limita a requisição a 50 MB.
|
|
225
|
+
*/
|
|
226
|
+
private static readonly OPENAI_RESPONSES_MAX_PDF_BYTES;
|
|
227
|
+
/** Acima disto a conta de tokens das páginas renderizadas deixa de compensar. */
|
|
228
|
+
private static readonly OPENAI_RESPONSES_MAX_PDF_PAGES;
|
|
229
|
+
/**
|
|
230
|
+
* Modelos que renderizam as páginas do PDF como imagem na Responses API.
|
|
231
|
+
*
|
|
232
|
+
* Um modelo sem visão recebendo `input_file` só recebe a camada de texto de
|
|
233
|
+
* volta — o mesmo nada do chat/completions, num endpoint diferente. Deixá-lo
|
|
234
|
+
* no caminho antigo mantém a falha conhecida em vez de criar uma nova.
|
|
235
|
+
*/
|
|
236
|
+
private static readonly OPENAI_DOCUMENT_MODEL_RE;
|
|
237
|
+
private shouldUseOpenAiResponses;
|
|
238
|
+
private buildOpenAiResponsesBody;
|
|
239
|
+
/**
|
|
240
|
+
* Texto da resposta da Responses API.
|
|
241
|
+
*
|
|
242
|
+
* `output_text` é conveniência do SDK — o JSON HTTP cru normalmente não traz.
|
|
243
|
+
* O texto mora no array `output`, ao lado de itens `reasoning` que não têm
|
|
244
|
+
* `content` nenhum. Percorrer o array é o caminho real; o atalho pelo
|
|
245
|
+
* `output_text` só vale para quando o campo por acaso estiver lá.
|
|
246
|
+
*/
|
|
247
|
+
private readOpenAiResponsesText;
|
|
248
|
+
/**
|
|
249
|
+
* PDF como documento, via `POST /v1/responses`.
|
|
250
|
+
*
|
|
251
|
+
* É o único caminho em que um PDF escaneado chega ao modelo: para modelos com
|
|
252
|
+
* visão a API extrai o texto e renderiza cada página como imagem. O
|
|
253
|
+
* chat/completions, mesmo aceitando um content part de PDF, só extrai texto —
|
|
254
|
+
* não serviria para um scan.
|
|
255
|
+
*/
|
|
256
|
+
private chatWithOpenAiResponses;
|
|
182
257
|
/**
|
|
183
258
|
* Anthropic (Claude).
|
|
184
259
|
*
|
|
@@ -194,12 +269,21 @@ export declare class AiService implements OnModuleInit {
|
|
|
194
269
|
private chatWithClaude;
|
|
195
270
|
private chatWithGemini;
|
|
196
271
|
private resolveAttachment;
|
|
272
|
+
/**
|
|
273
|
+
* Conteúdo da mensagem do usuário no chat/completions, mais como o anexo foi
|
|
274
|
+
* parar lá dentro.
|
|
275
|
+
*
|
|
276
|
+
* O `delivery` sai daqui porque é aqui que a decisão acontece: um PDF sem
|
|
277
|
+
* camada de texto vira o marcador de ilegível, e só este método sabe disso.
|
|
278
|
+
*/
|
|
197
279
|
private buildOpenAiUserContent;
|
|
198
280
|
private isImageMime;
|
|
199
281
|
private isTextMime;
|
|
200
282
|
private isPdfMime;
|
|
201
283
|
private normalizeAttachmentMimeType;
|
|
202
284
|
private extractPdfText;
|
|
285
|
+
/** Páginas do PDF, ou 0 quando ele não abre — nesse caso o teto não barra. */
|
|
286
|
+
private countPdfPages;
|
|
203
287
|
private toUtf8Text;
|
|
204
288
|
}
|
|
205
289
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.service.d.ts","sourceRoot":"","sources":["../../src/ai/ai.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAU,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"ai.service.d.ts","sourceRoot":"","sources":["../../src/ai/ai.service.ts"],"names":[],"mappings":"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"}
|