@contractspec/lib.knowledge 1.56.1 → 1.58.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 (74) hide show
  1. package/dist/access/guard.d.ts +13 -17
  2. package/dist/access/guard.d.ts.map +1 -1
  3. package/dist/access/guard.js +60 -49
  4. package/dist/access/index.d.ts +2 -2
  5. package/dist/access/index.d.ts.map +1 -0
  6. package/dist/access/index.js +60 -2
  7. package/dist/index.d.ts +6 -12
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +455 -12
  10. package/dist/ingestion/document-processor.d.ts +18 -20
  11. package/dist/ingestion/document-processor.d.ts.map +1 -1
  12. package/dist/ingestion/document-processor.js +63 -53
  13. package/dist/ingestion/embedding-service.d.ts +7 -11
  14. package/dist/ingestion/embedding-service.d.ts.map +1 -1
  15. package/dist/ingestion/embedding-service.js +26 -25
  16. package/dist/ingestion/gmail-adapter.d.ts +13 -17
  17. package/dist/ingestion/gmail-adapter.d.ts.map +1 -1
  18. package/dist/ingestion/gmail-adapter.js +67 -46
  19. package/dist/ingestion/index.d.ts +6 -6
  20. package/dist/ingestion/index.d.ts.map +1 -0
  21. package/dist/ingestion/index.js +221 -6
  22. package/dist/ingestion/storage-adapter.d.ts +10 -14
  23. package/dist/ingestion/storage-adapter.d.ts.map +1 -1
  24. package/dist/ingestion/storage-adapter.js +31 -26
  25. package/dist/ingestion/vector-indexer.d.ts +11 -15
  26. package/dist/ingestion/vector-indexer.d.ts.map +1 -1
  27. package/dist/ingestion/vector-indexer.js +32 -32
  28. package/dist/node/access/guard.js +60 -0
  29. package/dist/node/access/index.js +60 -0
  30. package/dist/node/index.js +454 -0
  31. package/dist/node/ingestion/document-processor.js +64 -0
  32. package/dist/node/ingestion/embedding-service.js +26 -0
  33. package/dist/node/ingestion/gmail-adapter.js +72 -0
  34. package/dist/node/ingestion/index.js +221 -0
  35. package/dist/node/ingestion/storage-adapter.js +31 -0
  36. package/dist/node/ingestion/vector-indexer.js +32 -0
  37. package/dist/node/query/index.js +79 -0
  38. package/dist/node/query/service.js +79 -0
  39. package/dist/node/retriever/index.js +100 -0
  40. package/dist/node/retriever/interface.js +0 -0
  41. package/dist/node/retriever/static-retriever.js +43 -0
  42. package/dist/node/retriever/vector-retriever.js +58 -0
  43. package/dist/node/types.js +0 -0
  44. package/dist/query/index.d.ts +2 -2
  45. package/dist/query/index.d.ts.map +1 -0
  46. package/dist/query/index.js +79 -2
  47. package/dist/query/service.d.ts +20 -24
  48. package/dist/query/service.d.ts.map +1 -1
  49. package/dist/query/service.js +76 -62
  50. package/dist/retriever/index.d.ts +4 -4
  51. package/dist/retriever/index.d.ts.map +1 -0
  52. package/dist/retriever/index.js +100 -3
  53. package/dist/retriever/interface.d.ts +38 -43
  54. package/dist/retriever/interface.d.ts.map +1 -1
  55. package/dist/retriever/interface.js +1 -0
  56. package/dist/retriever/static-retriever.d.ts +13 -18
  57. package/dist/retriever/static-retriever.d.ts.map +1 -1
  58. package/dist/retriever/static-retriever.js +42 -46
  59. package/dist/retriever/vector-retriever.d.ts +23 -28
  60. package/dist/retriever/vector-retriever.d.ts.map +1 -1
  61. package/dist/retriever/vector-retriever.js +57 -59
  62. package/dist/types.d.ts +34 -39
  63. package/dist/types.d.ts.map +1 -1
  64. package/dist/types.js +1 -0
  65. package/package.json +152 -45
  66. package/dist/access/guard.js.map +0 -1
  67. package/dist/ingestion/document-processor.js.map +0 -1
  68. package/dist/ingestion/embedding-service.js.map +0 -1
  69. package/dist/ingestion/gmail-adapter.js.map +0 -1
  70. package/dist/ingestion/storage-adapter.js.map +0 -1
  71. package/dist/ingestion/vector-indexer.js.map +0 -1
  72. package/dist/query/service.js.map +0 -1
  73. package/dist/retriever/static-retriever.js.map +0 -1
  74. package/dist/retriever/vector-retriever.js.map +0 -1
@@ -1,20 +1,16 @@
1
- import { KnowledgeAccessContext, KnowledgeAccessResult } from "../types.js";
2
- import { KnowledgeCategory, ResolvedAppConfig, ResolvedKnowledge } from "@contractspec/lib.contracts";
3
-
4
- //#region src/access/guard.d.ts
5
- interface KnowledgeAccessGuardOptions {
6
- disallowWriteCategories?: KnowledgeCategory[];
7
- requireWorkflowBinding?: boolean;
8
- requireAgentBinding?: boolean;
1
+ import type { ResolvedAppConfig, ResolvedKnowledge, KnowledgeCategory } from '@contractspec/lib.contracts';
2
+ import type { KnowledgeAccessContext, KnowledgeAccessResult } from '../types';
3
+ export interface KnowledgeAccessGuardOptions {
4
+ disallowWriteCategories?: KnowledgeCategory[];
5
+ requireWorkflowBinding?: boolean;
6
+ requireAgentBinding?: boolean;
9
7
  }
10
- declare class KnowledgeAccessGuard {
11
- private readonly disallowedWrite;
12
- private readonly requireWorkflowBinding;
13
- private readonly requireAgentBinding;
14
- constructor(options?: KnowledgeAccessGuardOptions);
15
- checkAccess(spaceBinding: ResolvedKnowledge, context: KnowledgeAccessContext, appConfig: ResolvedAppConfig): KnowledgeAccessResult;
16
- private isSpaceBound;
8
+ export declare class KnowledgeAccessGuard {
9
+ private readonly disallowedWrite;
10
+ private readonly requireWorkflowBinding;
11
+ private readonly requireAgentBinding;
12
+ constructor(options?: KnowledgeAccessGuardOptions);
13
+ checkAccess(spaceBinding: ResolvedKnowledge, context: KnowledgeAccessContext, appConfig: ResolvedAppConfig): KnowledgeAccessResult;
14
+ private isSpaceBound;
17
15
  }
18
- //#endregion
19
- export { KnowledgeAccessGuard, KnowledgeAccessGuardOptions };
20
16
  //# sourceMappingURL=guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","names":[],"sources":["../../src/access/guard.ts"],"sourcesContent":[],"mappings":";;;;UAOiB,2BAAA;4BACW;EADX,sBAAA,CAAA,EAAA,OAA2B;EAQ/B,mBAAA,CAAA,EAAA,OAAoB;;AAcf,cAdL,oBAAA,CAcK;EACL,iBAAA,eAAA;EACE,iBAAA,sBAAA;EACV,iBAAA,mBAAA;EAAqB,WAAA,CAAA,OAAA,CAAA,EAZH,2BAYG;4BAHR,4BACL,mCACE,oBACV"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/access/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,2BAA2B;IAC1C,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAID,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IACzD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;gBAElC,OAAO,GAAE,2BAAgC;IAQrD,WAAW,CACT,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,iBAAiB,GAC3B,qBAAqB;IAyDxB,OAAO,CAAC,YAAY;CAWrB"}
@@ -1,50 +1,61 @@
1
- //#region src/access/guard.ts
2
- const DEFAULT_DISALLOWED_WRITE = ["external", "ephemeral"];
3
- var KnowledgeAccessGuard = class {
4
- disallowedWrite;
5
- requireWorkflowBinding;
6
- requireAgentBinding;
7
- constructor(options = {}) {
8
- this.disallowedWrite = new Set(options.disallowWriteCategories ?? DEFAULT_DISALLOWED_WRITE);
9
- this.requireWorkflowBinding = options.requireWorkflowBinding ?? true;
10
- this.requireAgentBinding = options.requireAgentBinding ?? false;
11
- }
12
- checkAccess(spaceBinding, context, appConfig) {
13
- const { binding, space } = spaceBinding;
14
- if (binding.required !== false && !this.isSpaceBound(spaceBinding, appConfig)) return {
15
- allowed: false,
16
- reason: `Knowledge space "${space.meta.key}" is not bound in the resolved app config.`
17
- };
18
- if (context.operation === "write" && this.disallowedWrite.has(space.meta.category)) return {
19
- allowed: false,
20
- reason: `Knowledge space "${space.meta.key}" is category "${space.meta.category}" and is read-only.`
21
- };
22
- if (this.requireWorkflowBinding && context.workflowName) {
23
- const allowedWorkflows = binding.scope?.workflows;
24
- if (allowedWorkflows && !allowedWorkflows.includes(context.workflowName)) return {
25
- allowed: false,
26
- reason: `Workflow "${context.workflowName}" is not authorized to access knowledge space "${space.meta.key}".`
27
- };
28
- }
29
- if (this.requireAgentBinding && context.agentName) {
30
- const allowedAgents = binding.scope?.agents;
31
- if (allowedAgents && !allowedAgents.includes(context.agentName)) return {
32
- allowed: false,
33
- reason: `Agent "${context.agentName}" is not authorized to access knowledge space "${space.meta.key}".`
34
- };
35
- }
36
- if (space.meta.category === "ephemeral") return {
37
- allowed: true,
38
- severity: "warning",
39
- reason: `Knowledge space "${space.meta.key}" is ephemeral; results may be transient.`
40
- };
41
- return { allowed: true };
42
- }
43
- isSpaceBound(resolved, appConfig) {
44
- return appConfig.knowledge.some((entry) => entry.space.meta.key === resolved.space.meta.key && (resolved.space.meta.version == null || entry.space.meta.version === resolved.space.meta.version));
45
- }
46
- };
1
+ // @bun
2
+ // src/access/guard.ts
3
+ var DEFAULT_DISALLOWED_WRITE = ["external", "ephemeral"];
47
4
 
48
- //#endregion
49
- export { KnowledgeAccessGuard };
50
- //# sourceMappingURL=guard.js.map
5
+ class KnowledgeAccessGuard {
6
+ disallowedWrite;
7
+ requireWorkflowBinding;
8
+ requireAgentBinding;
9
+ constructor(options = {}) {
10
+ this.disallowedWrite = new Set(options.disallowWriteCategories ?? DEFAULT_DISALLOWED_WRITE);
11
+ this.requireWorkflowBinding = options.requireWorkflowBinding ?? true;
12
+ this.requireAgentBinding = options.requireAgentBinding ?? false;
13
+ }
14
+ checkAccess(spaceBinding, context, appConfig) {
15
+ const { binding, space } = spaceBinding;
16
+ if (binding.required !== false && !this.isSpaceBound(spaceBinding, appConfig)) {
17
+ return {
18
+ allowed: false,
19
+ reason: `Knowledge space "${space.meta.key}" is not bound in the resolved app config.`
20
+ };
21
+ }
22
+ if (context.operation === "write" && this.disallowedWrite.has(space.meta.category)) {
23
+ return {
24
+ allowed: false,
25
+ reason: `Knowledge space "${space.meta.key}" is category "${space.meta.category}" and is read-only.`
26
+ };
27
+ }
28
+ if (this.requireWorkflowBinding && context.workflowName) {
29
+ const allowedWorkflows = binding.scope?.workflows;
30
+ if (allowedWorkflows && !allowedWorkflows.includes(context.workflowName)) {
31
+ return {
32
+ allowed: false,
33
+ reason: `Workflow "${context.workflowName}" is not authorized to access knowledge space "${space.meta.key}".`
34
+ };
35
+ }
36
+ }
37
+ if (this.requireAgentBinding && context.agentName) {
38
+ const allowedAgents = binding.scope?.agents;
39
+ if (allowedAgents && !allowedAgents.includes(context.agentName)) {
40
+ return {
41
+ allowed: false,
42
+ reason: `Agent "${context.agentName}" is not authorized to access knowledge space "${space.meta.key}".`
43
+ };
44
+ }
45
+ }
46
+ if (space.meta.category === "ephemeral") {
47
+ return {
48
+ allowed: true,
49
+ severity: "warning",
50
+ reason: `Knowledge space "${space.meta.key}" is ephemeral; results may be transient.`
51
+ };
52
+ }
53
+ return { allowed: true };
54
+ }
55
+ isSpaceBound(resolved, appConfig) {
56
+ return appConfig.knowledge.some((entry) => entry.space.meta.key === resolved.space.meta.key && (resolved.space.meta.version == null || entry.space.meta.version === resolved.space.meta.version));
57
+ }
58
+ }
59
+ export {
60
+ KnowledgeAccessGuard
61
+ };
@@ -1,2 +1,2 @@
1
- import { KnowledgeAccessGuard, KnowledgeAccessGuardOptions } from "./guard.js";
2
- export { KnowledgeAccessGuard, KnowledgeAccessGuardOptions };
1
+ export * from './guard';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/access/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -1,3 +1,61 @@
1
- import { KnowledgeAccessGuard } from "./guard.js";
1
+ // @bun
2
+ // src/access/guard.ts
3
+ var DEFAULT_DISALLOWED_WRITE = ["external", "ephemeral"];
2
4
 
3
- export { KnowledgeAccessGuard };
5
+ class KnowledgeAccessGuard {
6
+ disallowedWrite;
7
+ requireWorkflowBinding;
8
+ requireAgentBinding;
9
+ constructor(options = {}) {
10
+ this.disallowedWrite = new Set(options.disallowWriteCategories ?? DEFAULT_DISALLOWED_WRITE);
11
+ this.requireWorkflowBinding = options.requireWorkflowBinding ?? true;
12
+ this.requireAgentBinding = options.requireAgentBinding ?? false;
13
+ }
14
+ checkAccess(spaceBinding, context, appConfig) {
15
+ const { binding, space } = spaceBinding;
16
+ if (binding.required !== false && !this.isSpaceBound(spaceBinding, appConfig)) {
17
+ return {
18
+ allowed: false,
19
+ reason: `Knowledge space "${space.meta.key}" is not bound in the resolved app config.`
20
+ };
21
+ }
22
+ if (context.operation === "write" && this.disallowedWrite.has(space.meta.category)) {
23
+ return {
24
+ allowed: false,
25
+ reason: `Knowledge space "${space.meta.key}" is category "${space.meta.category}" and is read-only.`
26
+ };
27
+ }
28
+ if (this.requireWorkflowBinding && context.workflowName) {
29
+ const allowedWorkflows = binding.scope?.workflows;
30
+ if (allowedWorkflows && !allowedWorkflows.includes(context.workflowName)) {
31
+ return {
32
+ allowed: false,
33
+ reason: `Workflow "${context.workflowName}" is not authorized to access knowledge space "${space.meta.key}".`
34
+ };
35
+ }
36
+ }
37
+ if (this.requireAgentBinding && context.agentName) {
38
+ const allowedAgents = binding.scope?.agents;
39
+ if (allowedAgents && !allowedAgents.includes(context.agentName)) {
40
+ return {
41
+ allowed: false,
42
+ reason: `Agent "${context.agentName}" is not authorized to access knowledge space "${space.meta.key}".`
43
+ };
44
+ }
45
+ }
46
+ if (space.meta.category === "ephemeral") {
47
+ return {
48
+ allowed: true,
49
+ severity: "warning",
50
+ reason: `Knowledge space "${space.meta.key}" is ephemeral; results may be transient.`
51
+ };
52
+ }
53
+ return { allowed: true };
54
+ }
55
+ isSpaceBound(resolved, appConfig) {
56
+ return appConfig.knowledge.some((entry) => entry.space.meta.key === resolved.space.meta.key && (resolved.space.meta.version == null || entry.space.meta.version === resolved.space.meta.version));
57
+ }
58
+ }
59
+ export {
60
+ KnowledgeAccessGuard
61
+ };
package/dist/index.d.ts CHANGED
@@ -1,12 +1,6 @@
1
- import { KnowledgeAccessContext, KnowledgeAccessResult, RetrievalOptions, RetrievalResult } from "./types.js";
2
- import { KnowledgeAccessGuard, KnowledgeAccessGuardOptions } from "./access/guard.js";
3
- import { KnowledgeRetriever, RetrieverConfig } from "./retriever/interface.js";
4
- import { StaticRetriever, StaticRetrieverConfig, createStaticRetriever } from "./retriever/static-retriever.js";
5
- import { VectorRetriever, VectorRetrieverConfig, createVectorRetriever } from "./retriever/vector-retriever.js";
6
- import { KnowledgeAnswer, KnowledgeQueryConfig, KnowledgeQueryService } from "./query/service.js";
7
- import { DocumentFragment, DocumentProcessor, RawDocument } from "./ingestion/document-processor.js";
8
- import { EmbeddingService } from "./ingestion/embedding-service.js";
9
- import { VectorIndexConfig, VectorIndexer } from "./ingestion/vector-indexer.js";
10
- import { GmailIngestionAdapter } from "./ingestion/gmail-adapter.js";
11
- import { StorageIngestionAdapter } from "./ingestion/storage-adapter.js";
12
- export { DocumentFragment, DocumentProcessor, EmbeddingService, GmailIngestionAdapter, KnowledgeAccessContext, KnowledgeAccessGuard, KnowledgeAccessGuardOptions, KnowledgeAccessResult, KnowledgeAnswer, KnowledgeQueryConfig, KnowledgeQueryService, KnowledgeRetriever, RawDocument, RetrievalOptions, RetrievalResult, RetrieverConfig, StaticRetriever, StaticRetrieverConfig, StorageIngestionAdapter, VectorIndexConfig, VectorIndexer, VectorRetriever, VectorRetrieverConfig, createStaticRetriever, createVectorRetriever };
1
+ export * from './types';
2
+ export * from './retriever';
3
+ export * from './query';
4
+ export * from './ingestion';
5
+ export * from './access';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,UAAU,CAAC"}