@hubblecommerce/overmind-core 0.1.2 → 0.1.3

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.
@@ -1,4 +1,4 @@
1
1
  import type { EmbeddingsProvider } from './embeddings.interface.js';
2
2
  export type { EmbeddingsProvider };
3
- export declare function createTransformersEmbeddings(modelName: string, pooling: 'mean', normalize: boolean): Promise<EmbeddingsProvider>;
3
+ export declare function createTransformersEmbeddings(): Promise<EmbeddingsProvider>;
4
4
  //# sourceMappingURL=transformers.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformers.provider.d.ts","sourceRoot":"","sources":["../../../src/embeddings/transformers.provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC,wBAAsB,4BAA4B,CAC9C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAkB7B"}
1
+ {"version":3,"file":"transformers.provider.d.ts","sourceRoot":"","sources":["../../../src/embeddings/transformers.provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAInC,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAuBhF"}
@@ -1,8 +1,13 @@
1
1
  import { pipeline } from '@xenova/transformers';
2
- export async function createTransformersEmbeddings(modelName, pooling, normalize) {
2
+ import { config } from '../config/app.config.js';
3
+ let instance = null;
4
+ export async function createTransformersEmbeddings() {
5
+ if (instance)
6
+ return instance;
3
7
  console.log('Loading local embedding model (first time may take a moment to download)...');
8
+ const { modelName, pooling, normalize } = config.embedding;
4
9
  const embedder = await pipeline('feature-extraction', modelName);
5
- return {
10
+ instance = {
6
11
  async embedDocuments(texts) {
7
12
  const embeddings = [];
8
13
  for (const text of texts) {
@@ -16,4 +21,5 @@ export async function createTransformersEmbeddings(modelName, pooling, normalize
16
21
  return Array.from(output.data);
17
22
  },
18
23
  };
24
+ return instance;
19
25
  }
@@ -40,6 +40,12 @@ export declare class ConfluenceClient {
40
40
  * Get space by key
41
41
  */
42
42
  getSpaceByKey(spaceKey: string): Promise<ConfluenceSpace>;
43
+ /**
44
+ * Get all direct child pages of a given parent page
45
+ */
46
+ getChildPages(parentId: string): Promise<{
47
+ id: string;
48
+ }[]>;
43
49
  /**
44
50
  * Get recent pages across all spaces or specific spaces
45
51
  */
@@ -1 +1 @@
1
- {"version":3,"file":"confluence.client.d.ts","sourceRoot":"","sources":["../../../../src/integrations/confluence/confluence.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,cAAc,EAEd,eAAe,EAKlB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAuBD,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,eAAe,CAAa;gBAExB,MAAM,EAAE,sBAAsB;IAS1C;;OAEG;YACW,gBAAgB;IAa9B;;OAEG;YACW,OAAO;IAwDrB;;OAEG;IACG,SAAS,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAkB/D;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAyBpF;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,SAAS,GAAG,kBAA8B,GAAG,OAAO,CAAC,cAAc,CAAC;IAKlH;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrD;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAW/D;;OAEG;IACG,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAYzF;;;OAGG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0BtD;;;;;OAKG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD;;;;;;;;OAQG;IACG,iBAAiB,CAAC,MAAM,EAAE;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,cAAc,CAAC;CAuC9B"}
1
+ {"version":3,"file":"confluence.client.d.ts","sourceRoot":"","sources":["../../../../src/integrations/confluence/confluence.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,cAAc,EAEd,eAAe,EAKlB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAuBD,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,eAAe,CAAa;gBAExB,MAAM,EAAE,sBAAsB;IAS1C;;OAEG;YACW,gBAAgB;IAa9B;;OAEG;YACW,OAAO;IAwDrB;;OAEG;IACG,SAAS,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAkB/D;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAyBpF;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,SAAS,GAAG,kBAA8B,GAAG,OAAO,CAAC,cAAc,CAAC;IAKlH;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrD;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAW/D;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAoBhE;;OAEG;IACG,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAYzF;;;OAGG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0BtD;;;;;OAKG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD;;;;;;;;OAQG;IACG,iBAAiB,CAAC,MAAM,EAAE;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,cAAc,CAAC;CAuC9B"}
@@ -142,6 +142,24 @@ export class ConfluenceClient {
142
142
  }
143
143
  return response.results[0];
144
144
  }
145
+ /**
146
+ * Get all direct child pages of a given parent page
147
+ */
148
+ async getChildPages(parentId) {
149
+ const pages = [];
150
+ let start = 0;
151
+ const limit = 250;
152
+ while (true) {
153
+ const endpoint = `/wiki/rest/api/content/${parentId}/child/page?start=${start}&limit=${limit}&status=current`;
154
+ const response = await this.request(endpoint);
155
+ pages.push(...response.results);
156
+ if (response.results.length < limit) {
157
+ break;
158
+ }
159
+ start += limit;
160
+ }
161
+ return pages;
162
+ }
145
163
  /**
146
164
  * Get recent pages across all spaces or specific spaces
147
165
  */
@@ -1 +1 @@
1
- {"version":3,"file":"confluence-html-parser.d.ts","sourceRoot":"","sources":["../../../src/processors/confluence-html-parser.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBxD"}
1
+ {"version":3,"file":"confluence-html-parser.d.ts","sourceRoot":"","sources":["../../../src/processors/confluence-html-parser.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASxD"}
@@ -1,19 +1,18 @@
1
1
  import TurndownService from 'turndown';
2
+ const turndownService = new TurndownService({
3
+ headingStyle: 'atx',
4
+ hr: '---',
5
+ bulletListMarker: '-',
6
+ codeBlockStyle: 'fenced',
7
+ emDelimiter: '*',
8
+ strongDelimiter: '**',
9
+ });
10
+ addConfluenceRules(turndownService);
2
11
  /**
3
12
  * Parse Confluence storage format HTML to clean Markdown
4
13
  * Uses Turndown with custom rules for Confluence-specific elements
5
14
  */
6
15
  export function parseConfluenceHtml(html) {
7
- const turndownService = new TurndownService({
8
- headingStyle: 'atx', // Use # for headings
9
- hr: '---',
10
- bulletListMarker: '-',
11
- codeBlockStyle: 'fenced',
12
- emDelimiter: '*',
13
- strongDelimiter: '**',
14
- });
15
- // Add custom rules for Confluence-specific elements
16
- addConfluenceRules(turndownService);
17
16
  // Convert HTML to Markdown
18
17
  const markdown = turndownService.turndown(html);
19
18
  // Clean up extra whitespace
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hubblecommerce/overmind-core",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "description": "Shared infrastructure package for the Overmind AI agent system",
6
6
  "main": "./dist/src/index.js",
@@ -75,7 +75,9 @@
75
75
  "check": "npm run lint && npm run typecheck",
76
76
  "prepare": "husky",
77
77
  "sync:confluence": "tsx scripts/bulk-sync-confluence.ts",
78
- "sync:confluence:reset": "rm -f .confluence-sync-state.json && tsx scripts/bulk-sync-confluence.ts"
78
+ "sync:confluence:reset": "rm -f .confluence-sync-state.json && tsx scripts/bulk-sync-confluence.ts",
79
+ "sync:confluence:prod": "tsx scripts/bulk-sync-confluence.ts --prod",
80
+ "sync:confluence:prod:reset": "rm -f .confluence-sync-state.prod.json && tsx scripts/bulk-sync-confluence.ts --prod"
79
81
  },
80
82
  "devDependencies": {
81
83
  "@eslint/js": "^9.36.0",