@3ngram/sdk 0.8.0 → 1.0.2

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/LICENSE CHANGED
@@ -199,4 +199,3 @@
199
199
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
200
  See the License for the specific language governing permissions and
201
201
  limitations under the License.
202
-
package/NOTICE ADDED
@@ -0,0 +1,7 @@
1
+ 3ngram
2
+ Copyright 2026 B3dmar ApS
3
+
4
+ This product includes software developed as part of the 3ngram project
5
+ (https://github.com/B3dmar/3ngram).
6
+
7
+ Licensed under the Apache License, Version 2.0. See LICENSE.
package/README.md ADDED
@@ -0,0 +1,29 @@
1
+ <!-- SPDX-License-Identifier: Apache-2.0 -->
2
+
3
+ # @3ngram/sdk
4
+
5
+ Typed TypeScript client for the 3ngram REST API.
6
+
7
+ ```bash
8
+ npm install @3ngram/sdk
9
+ ```
10
+
11
+ ```ts
12
+ import { ThreengramClient } from '@3ngram/sdk'
13
+
14
+ const client = new ThreengramClient({
15
+ baseUrl: 'https://api.example.com',
16
+ apiKey: process.env.THREENGRAM_API_KEY!,
17
+ })
18
+
19
+ const results = await client.search('release decision', {
20
+ scope: 'work',
21
+ project: '3ngram',
22
+ })
23
+ ```
24
+
25
+ The client currently covers remember, search, facts, revise, and commitment
26
+ resolution. Inputs and outputs come from `@3ngram/schema`.
27
+
28
+ See the [3ngram repository](https://github.com/B3dmar/3ngram) for API and
29
+ self-hosting documentation.
package/dist/client.js CHANGED
@@ -1,4 +1,11 @@
1
1
  import { ThreengramApiError, ThreengramNetworkError } from './errors.js';
2
+ /** Strip trailing path separators in linear time for arbitrary caller input. */
3
+ function stripTrailingSlashes(value) {
4
+ let end = value.length;
5
+ while (end > 0 && value.charCodeAt(end - 1) === 47)
6
+ end--;
7
+ return value.slice(0, end);
8
+ }
2
9
  /**
3
10
  * Typed client over REST `/api/v1`. Five methods mirror the routes 1:1; every
4
11
  * argument and return type is sourced from @3ngram/schema.
@@ -8,7 +15,7 @@ export class ThreengramClient {
8
15
  #apiKey;
9
16
  #fetch;
10
17
  constructor(config, fetchImpl) {
11
- this.#baseUrl = config.baseUrl.replace(/\/+$/, '');
18
+ this.#baseUrl = stripTrailingSlashes(config.baseUrl);
12
19
  this.#apiKey = config.apiKey;
13
20
  this.#fetch = fetchImpl ?? ((input, init) => fetch(input, init));
14
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- // @3ngram/sdk — workspace-only typed client over the REST /api/v1 surface
3
- // (docs/concepts/architecture.mdx one core, N transports; NOT published to npm).
2
+ // @3ngram/sdk — published typed client over the REST /api/v1 surface
3
+ // (docs/concepts/architecture.mdx: one core, N transports).
4
4
  export { ThreengramClient, } from './client.js';
5
5
  export { ThreengramApiError, ThreengramNetworkError } from './errors.js';
6
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AAC1E,iFAAiF;AACjF,OAAO,EAGL,gBAAgB,GAEjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,qEAAqE;AACrE,4DAA4D;AAC5D,OAAO,EAGL,gBAAgB,GAEjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA"}
package/package.json CHANGED
@@ -1,8 +1,22 @@
1
1
  {
2
2
  "name": "@3ngram/sdk",
3
- "version": "0.8.0",
4
- "description": "Thin typed client over the existing REST /api/v1 surface (docs/concepts/architecture.mdx one core, N transports).",
3
+ "version": "1.0.2",
4
+ "description": "Typed TypeScript client for the 3ngram REST API.",
5
5
  "license": "Apache-2.0",
6
+ "homepage": "https://3ngram.ai",
7
+ "bugs": {
8
+ "url": "https://github.com/B3dmar/3ngram/issues"
9
+ },
10
+ "keywords": [
11
+ "3ngram",
12
+ "ai",
13
+ "mcp",
14
+ "memory",
15
+ "typescript"
16
+ ],
17
+ "engines": {
18
+ "node": ">=22"
19
+ },
6
20
  "type": "module",
7
21
  "publishConfig": {
8
22
  "access": "public",
@@ -22,11 +36,14 @@
22
36
  },
23
37
  "files": [
24
38
  "dist",
39
+ "LICENSE",
40
+ "NOTICE",
41
+ "README.md",
25
42
  "tsconfig.package.json"
26
43
  ],
27
44
  "dependencies": {
28
45
  "zod": "4.4.3",
29
- "@3ngram/schema": "0.4.0"
46
+ "@3ngram/schema": "0.4.1"
30
47
  },
31
48
  "devDependencies": {
32
49
  "@types/node": "25.9.1",