@creator-notes/cnotes 0.18.0 → 0.20.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.
- package/README.md +1 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +18 -7
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/errors.d.ts +31 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +123 -0
- package/dist/lib/errors.js.map +1 -1
- package/package.json +2 -2
- package/skills/cnotes/SKILL.md +14 -2
package/README.md
CHANGED
|
@@ -61,7 +61,7 @@ cnotes search semantic "onboarding flow"
|
|
|
61
61
|
|
|
62
62
|
One contract across every command:
|
|
63
63
|
|
|
64
|
-
- **Success is the exit code, not a body field.** Exit `0` is success; never look for an `ok` key. Failures use a typed table: `2` auth, `3` validation, `4` not found, `5` conflict, `6` rate limit, `7` permission. Re-running a write because a key looked empty will duplicate it.
|
|
64
|
+
- **Success is the exit code, not a body field.** Exit `0` is success; never look for an `ok` key. Failures use a typed table: `2` auth, `3` validation, `4` not found, `5` conflict, `6` rate limit, `7` permission, `8` subscription required, `9` network (the request never reached the server — DNS/TCP/TLS failed; the JSON carries the low-level `cause`, e.g. `ENOTFOUND`). Re-running a write because a key looked empty will duplicate it.
|
|
65
65
|
- **Reads return a bare array; writes return an envelope.** `notes list/get/search --json` pipe to `jq '.[0]'`. `notes create --json` returns `{ results, relationshipsCreated, relationshipTypesCreated }`; read created notes from `.results` (not `notes`/`ok`).
|
|
66
66
|
- **Errors teach.** A `--json` failure prints `{ error, code, exitCode, hint }` to stderr, where `hint` names the command that fixes it (a bad workspace id returns a 404 with `resource: "workspace"` and a `cnotes workspace list` hint, not a bare 500).
|
|
67
67
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAcA,qBAAa,SAAS;IAElB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;gBADL,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM;IAGvB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,OAAO;IAef;;;;OAIG;YACW,cAAc;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAcA,qBAAa,SAAS;IAElB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;gBADL,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM;IAGvB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,OAAO;IAef;;;;OAIG;YACW,cAAc;IAkDtB,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC1C,OAAO,CAAC,CAAC,CAAC;IAqBP,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IAgBP,YAAY,CAAC,CAAC,GAAG,OAAO,EAC5B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,QAAQ,GAC5B,OAAO,CAAC,CAAC,CAAC;IAuBP,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IAgBP,KAAK,CAAC,CAAC,GAAG,OAAO,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC1C,OAAO,CAAC,CAAC,CAAC;IAqBP,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAenD;;;;;;;;OAQG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwCvD;;;;;;OAMG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;YAgB3C,aAAa;CAI5B"}
|
package/dist/lib/api-client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApiError } from "./errors.js";
|
|
1
|
+
import { ApiError, asCliError } from "./errors.js";
|
|
2
2
|
import { loadConfig, getActiveAgentRunId } from "./auth-store.js";
|
|
3
3
|
const MAX_RETRIES = 3;
|
|
4
4
|
const RETRY_BASE_MS = 1000;
|
|
@@ -93,7 +93,10 @@ export class ApiClient {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
|
|
96
|
+
// A transport failure here (DNS/TCP/TLS) surfaces from fetch as a bare
|
|
97
|
+
// "fetch failed". Wrap it so the caller sees which host failed and why,
|
|
98
|
+
// instead of an opaque message that reads like a backend/auth problem.
|
|
99
|
+
throw asCliError(this.serverUrl, lastError || new Error("Request failed after retries"));
|
|
97
100
|
}
|
|
98
101
|
async get(path, params) {
|
|
99
102
|
const url = new URL(path, this.serverUrl);
|
|
@@ -200,11 +203,19 @@ export class ApiClient {
|
|
|
200
203
|
*/
|
|
201
204
|
async resolveRedirectUrl(path) {
|
|
202
205
|
const url = new URL(path, this.serverUrl);
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
206
|
+
let res;
|
|
207
|
+
try {
|
|
208
|
+
res = await fetch(url.toString(), {
|
|
209
|
+
method: "GET",
|
|
210
|
+
headers: this.headers(),
|
|
211
|
+
redirect: "manual",
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
// This leading hop skips fetchWithRetry, so wrap transport failures here
|
|
216
|
+
// too — otherwise an image/asset resolve would leak a bare "fetch failed".
|
|
217
|
+
throw asCliError(this.serverUrl, err);
|
|
218
|
+
}
|
|
208
219
|
const location = res.headers.get("location");
|
|
209
220
|
if (res.status >= 300 && res.status < 400 && location) {
|
|
210
221
|
return location;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/errors.d.ts
CHANGED
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
* on a free workspace). Distinct from 7 so an agent can branch on "needs
|
|
15
15
|
* Pro" without confusing it with an editor-permission denial; the JSON
|
|
16
16
|
* error carries `serverCode: "subscription_required"` and an `upgradeUrl`.
|
|
17
|
+
* 9 network (the request never reached the server — DNS/TCP/TLS failed).
|
|
18
|
+
* Distinct from 1 so an agent can tell "I can't reach the host" (transient,
|
|
19
|
+
* retry / check connectivity) apart from a malformed command. The JSON
|
|
20
|
+
* error carries the low-level `cause` code (e.g. "ENOTFOUND").
|
|
17
21
|
*/
|
|
18
22
|
export declare const EXIT_CODES: {
|
|
19
23
|
readonly OK: 0;
|
|
@@ -25,6 +29,7 @@ export declare const EXIT_CODES: {
|
|
|
25
29
|
readonly RATE_LIMIT: 6;
|
|
26
30
|
readonly PERMISSION: 7;
|
|
27
31
|
readonly SUBSCRIPTION: 8;
|
|
32
|
+
readonly NETWORK: 9;
|
|
28
33
|
};
|
|
29
34
|
export declare class CliError extends Error {
|
|
30
35
|
exitCode: number;
|
|
@@ -53,6 +58,32 @@ export declare class ApiError extends CliError {
|
|
|
53
58
|
upgradeUrl?: string;
|
|
54
59
|
constructor(status: number, body: Record<string, unknown>);
|
|
55
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* A request that never reached the server: DNS, TCP, or TLS failed before any
|
|
63
|
+
* HTTP response came back. Node's fetch collapses all of these into a generic
|
|
64
|
+
* `TypeError: fetch failed`, stashing the real reason on `error.cause`. Left
|
|
65
|
+
* un-unwrapped, an agent only sees `{"error":"fetch failed"}` and tends to
|
|
66
|
+
* misread it as a backend/auth problem — when the actual fix is connectivity
|
|
67
|
+
* (or, in a sandboxed shell, enabling network egress). This type unwraps the
|
|
68
|
+
* cause, names the host, and gives a per-code hint so the failure is legible.
|
|
69
|
+
*/
|
|
70
|
+
export declare class NetworkError extends CliError {
|
|
71
|
+
/** Low-level cause code when resolvable (e.g. "ENOTFOUND", "ECONNREFUSED"). */
|
|
72
|
+
code?: string;
|
|
73
|
+
constructor(serverUrl: string, cause: Error);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* True when an error means the request failed at the transport layer rather
|
|
77
|
+
* than returning an HTTP status. Node fetch raises `TypeError: fetch failed`
|
|
78
|
+
* for these; we also match by low-level code in case the message differs.
|
|
79
|
+
*/
|
|
80
|
+
export declare function isNetworkError(err: unknown): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Normalize a thrown error for surfacing: transport failures become a typed
|
|
83
|
+
* {@link NetworkError} (naming the host + cause); everything else passes
|
|
84
|
+
* through untouched. Call at the fetch boundary, where the server URL is known.
|
|
85
|
+
*/
|
|
86
|
+
export declare function asCliError(serverUrl: string, err: unknown): unknown;
|
|
56
87
|
/**
|
|
57
88
|
* Handle errors from CLI commands uniformly.
|
|
58
89
|
*/
|
package/dist/lib/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;CAWb,CAAC;AAEX,qBAAa,QAAS,SAAQ,KAAK;IAKxB,QAAQ,EAAE,MAAM;IAJzB,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGZ,OAAO,EAAE,MAAM,EACR,QAAQ,GAAE,MAA2B,EAC5C,IAAI,CAAC,EAAE,MAAM;CAMhB;AAED,qBAAa,SAAU,SAAQ,QAAQ;gBAEnC,OAAO,GAAE,MAAmC,EAO5C,IAAI,GAAE,MAA4C;CAKrD;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAI3C;AAED,qBAAa,aAAc,SAAQ,QAAQ;gBAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAI3C;AAED,qBAAa,QAAS,SAAQ,QAAQ;IAW3B,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAXtC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;gBAGX,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CA2BvC;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEF,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAa5C;AAyCD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKpD;AAkCD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAMnE;AA8FD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,CAwChE"}
|
package/dist/lib/errors.js
CHANGED
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
* on a free workspace). Distinct from 7 so an agent can branch on "needs
|
|
15
15
|
* Pro" without confusing it with an editor-permission denial; the JSON
|
|
16
16
|
* error carries `serverCode: "subscription_required"` and an `upgradeUrl`.
|
|
17
|
+
* 9 network (the request never reached the server — DNS/TCP/TLS failed).
|
|
18
|
+
* Distinct from 1 so an agent can tell "I can't reach the host" (transient,
|
|
19
|
+
* retry / check connectivity) apart from a malformed command. The JSON
|
|
20
|
+
* error carries the low-level `cause` code (e.g. "ENOTFOUND").
|
|
17
21
|
*/
|
|
18
22
|
export const EXIT_CODES = {
|
|
19
23
|
OK: 0,
|
|
@@ -25,6 +29,7 @@ export const EXIT_CODES = {
|
|
|
25
29
|
RATE_LIMIT: 6,
|
|
26
30
|
PERMISSION: 7,
|
|
27
31
|
SUBSCRIPTION: 8,
|
|
32
|
+
NETWORK: 9,
|
|
28
33
|
};
|
|
29
34
|
export class CliError extends Error {
|
|
30
35
|
exitCode;
|
|
@@ -101,6 +106,119 @@ export class ApiError extends CliError {
|
|
|
101
106
|
this.upgradeUrl = body.upgradeUrl;
|
|
102
107
|
}
|
|
103
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* A request that never reached the server: DNS, TCP, or TLS failed before any
|
|
111
|
+
* HTTP response came back. Node's fetch collapses all of these into a generic
|
|
112
|
+
* `TypeError: fetch failed`, stashing the real reason on `error.cause`. Left
|
|
113
|
+
* un-unwrapped, an agent only sees `{"error":"fetch failed"}` and tends to
|
|
114
|
+
* misread it as a backend/auth problem — when the actual fix is connectivity
|
|
115
|
+
* (or, in a sandboxed shell, enabling network egress). This type unwraps the
|
|
116
|
+
* cause, names the host, and gives a per-code hint so the failure is legible.
|
|
117
|
+
*/
|
|
118
|
+
export class NetworkError extends CliError {
|
|
119
|
+
/** Low-level cause code when resolvable (e.g. "ENOTFOUND", "ECONNREFUSED"). */
|
|
120
|
+
code;
|
|
121
|
+
constructor(serverUrl, cause) {
|
|
122
|
+
const code = extractErrorCode(cause);
|
|
123
|
+
const summary = code ? networkCodeSummary(code) : "DNS/connection failed";
|
|
124
|
+
super(`Could not reach ${serverUrl}: ${summary}`, EXIT_CODES.NETWORK, networkHint(code));
|
|
125
|
+
this.name = "NetworkError";
|
|
126
|
+
this.code = code;
|
|
127
|
+
// Preserve the original error so callers can inspect the full chain.
|
|
128
|
+
this.cause = cause;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Node error codes that mean the request never completed a round-trip. TLS
|
|
133
|
+
* failures (codes starting `CERT_`/`ERR_TLS_`/`DEPTH_`/`UNABLE_`) are detected
|
|
134
|
+
* separately in {@link isNetworkError} by prefix.
|
|
135
|
+
*/
|
|
136
|
+
const NETWORK_ERROR_CODES = new Set([
|
|
137
|
+
"ENOTFOUND", // DNS: host not found
|
|
138
|
+
"EAI_AGAIN", // DNS: temporary resolver failure (often sandbox/offline)
|
|
139
|
+
"ECONNREFUSED", // nothing listening / egress blocked
|
|
140
|
+
"ECONNRESET", // connection dropped before a response
|
|
141
|
+
"ETIMEDOUT", // connect/read timed out
|
|
142
|
+
"EHOSTUNREACH", // no route to host
|
|
143
|
+
"ENETUNREACH", // network unreachable
|
|
144
|
+
"EPIPE", // broken pipe mid-write
|
|
145
|
+
"EPROTO", // protocol error (often TLS handshake)
|
|
146
|
+
"UND_ERR_CONNECT_TIMEOUT", // undici connect timeout
|
|
147
|
+
"UND_ERR_SOCKET", // undici socket error
|
|
148
|
+
]);
|
|
149
|
+
function isTlsCode(code) {
|
|
150
|
+
return (code.startsWith("CERT_") ||
|
|
151
|
+
code.startsWith("ERR_TLS_") ||
|
|
152
|
+
code.startsWith("DEPTH_") ||
|
|
153
|
+
code.startsWith("UNABLE_TO_"));
|
|
154
|
+
}
|
|
155
|
+
/** Walk the `cause` chain (capped) to find the first string `code`. */
|
|
156
|
+
function extractErrorCode(err) {
|
|
157
|
+
let cur = err;
|
|
158
|
+
for (let depth = 0; cur && depth < 5; depth++) {
|
|
159
|
+
const code = cur.code;
|
|
160
|
+
if (typeof code === "string")
|
|
161
|
+
return code;
|
|
162
|
+
cur = cur.cause;
|
|
163
|
+
}
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* True when an error means the request failed at the transport layer rather
|
|
168
|
+
* than returning an HTTP status. Node fetch raises `TypeError: fetch failed`
|
|
169
|
+
* for these; we also match by low-level code in case the message differs.
|
|
170
|
+
*/
|
|
171
|
+
export function isNetworkError(err) {
|
|
172
|
+
if (!(err instanceof Error))
|
|
173
|
+
return false;
|
|
174
|
+
if (err.message === "fetch failed")
|
|
175
|
+
return true;
|
|
176
|
+
const code = extractErrorCode(err);
|
|
177
|
+
return code !== undefined && (NETWORK_ERROR_CODES.has(code) || isTlsCode(code));
|
|
178
|
+
}
|
|
179
|
+
function networkCodeSummary(code) {
|
|
180
|
+
if (isTlsCode(code))
|
|
181
|
+
return `TLS handshake failed (${code})`;
|
|
182
|
+
switch (code) {
|
|
183
|
+
case "ENOTFOUND":
|
|
184
|
+
return "DNS lookup failed (host not found)";
|
|
185
|
+
case "EAI_AGAIN":
|
|
186
|
+
return "DNS lookup timed out";
|
|
187
|
+
case "ECONNREFUSED":
|
|
188
|
+
return "connection refused";
|
|
189
|
+
case "ECONNRESET":
|
|
190
|
+
return "connection reset";
|
|
191
|
+
case "ETIMEDOUT":
|
|
192
|
+
case "UND_ERR_CONNECT_TIMEOUT":
|
|
193
|
+
return "connection timed out";
|
|
194
|
+
case "EHOSTUNREACH":
|
|
195
|
+
return "host unreachable";
|
|
196
|
+
case "ENETUNREACH":
|
|
197
|
+
return "network unreachable";
|
|
198
|
+
default:
|
|
199
|
+
return `connection failed (${code})`;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function networkHint(code) {
|
|
203
|
+
if (code && isTlsCode(code)) {
|
|
204
|
+
return "TLS verification failed. Check the system clock and CA certificates, or whether a proxy is intercepting HTTPS.";
|
|
205
|
+
}
|
|
206
|
+
// The common case in agent sandboxes: outbound network is blocked entirely,
|
|
207
|
+
// so DNS or connect fails for every host. Point there first.
|
|
208
|
+
return "The request never reached the server. Check connectivity and DNS; in a sandboxed shell, confirm outbound network access is enabled.";
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Normalize a thrown error for surfacing: transport failures become a typed
|
|
212
|
+
* {@link NetworkError} (naming the host + cause); everything else passes
|
|
213
|
+
* through untouched. Call at the fetch boundary, where the server URL is known.
|
|
214
|
+
*/
|
|
215
|
+
export function asCliError(serverUrl, err) {
|
|
216
|
+
if (isNetworkError(err)) {
|
|
217
|
+
const cause = err instanceof Error ? err : new Error(String(err));
|
|
218
|
+
return new NetworkError(serverUrl, cause);
|
|
219
|
+
}
|
|
220
|
+
return err;
|
|
221
|
+
}
|
|
104
222
|
function exitCodeForStatus(status) {
|
|
105
223
|
if (status === 401)
|
|
106
224
|
return EXIT_CODES.AUTH;
|
|
@@ -200,6 +318,11 @@ export function handleError(error, json) {
|
|
|
200
318
|
};
|
|
201
319
|
if (error.hint)
|
|
202
320
|
payload.hint = error.hint;
|
|
321
|
+
if (error instanceof NetworkError && error.code) {
|
|
322
|
+
// The low-level reason (e.g. "ENOTFOUND") an agent can branch on,
|
|
323
|
+
// alongside the typed `code: "NetworkError"` and exitCode 9.
|
|
324
|
+
payload.cause = error.code;
|
|
325
|
+
}
|
|
203
326
|
if (error instanceof ApiError) {
|
|
204
327
|
payload.status = error.status;
|
|
205
328
|
// Surface the server's stable code + action URL so an agent can branch
|
package/dist/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@creator-notes/cnotes",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "CLI for CreatorNotes — create notes, build canvases, search knowledge from the terminal",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"build": "tsc",
|
|
23
23
|
"dev": "tsc --watch",
|
|
24
24
|
"start": "node dist/cn.js",
|
|
25
|
-
"test": "node --test \"src/**/*.test.ts\"",
|
|
25
|
+
"test": "node --experimental-transform-types --test \"src/**/*.test.ts\"",
|
|
26
26
|
"prepublishOnly": "npm run build"
|
|
27
27
|
},
|
|
28
28
|
"keywords": [
|
package/skills/cnotes/SKILL.md
CHANGED
|
@@ -145,6 +145,14 @@ cnotes versions create <noteId> --description "what changed" --markdown-stdin <
|
|
|
145
145
|
```bash
|
|
146
146
|
# List / get (archived canvases excluded by default)
|
|
147
147
|
cnotes canvas list [--include-archived]
|
|
148
|
+
# Find a canvas by name, topic, or MEANING — semantic similarity over canvas-digest
|
|
149
|
+
# embeddings blended with lexical match (name / themes / digest), so a query sharing no
|
|
150
|
+
# words with a canvas can still surface it. This is the canvas-level counterpart to
|
|
151
|
+
# `cnotes search semantic` (which searches NOTE content); they are separate corpora, so to
|
|
152
|
+
# cover both you search each. Pass '*' or 'all' to enumerate every canvas. JSON results
|
|
153
|
+
# carry id, displayId, title, matchedBy (lexical|semantic|both), relevance (0..1),
|
|
154
|
+
# purpose, themes, contains, noteCount, snippet, and `open` (deep link).
|
|
155
|
+
cnotes canvas search "<query>" [--limit <n>]
|
|
148
156
|
cnotes canvas get <canvasId>
|
|
149
157
|
# `get` returns each node kind in its own array (nodes/textNodes/richtextNodes/
|
|
150
158
|
# listNodes/canvasLinkNodes) AND a unified `allNodes` array — every node flattened
|
|
@@ -280,9 +288,13 @@ the right canvas, or to gauge a note's importance (many backlinks / on the home
|
|
|
280
288
|
canvas = load-bearing). `cnotes schema --json` carries the same pointers under
|
|
281
289
|
its `discovery` key.
|
|
282
290
|
|
|
283
|
-
###
|
|
291
|
+
### Search
|
|
292
|
+
`cnotes search semantic` searches NOTE content (vector + BM25); `cnotes canvas search`
|
|
293
|
+
searches CANVASES (name / themes / digest, semantic + lexical). They are separate corpora —
|
|
294
|
+
to cover both, search each.
|
|
284
295
|
```bash
|
|
285
|
-
cnotes search semantic "<query>" [--limit <n>] [--canvas <canvasId>]
|
|
296
|
+
cnotes search semantic "<query>" [--limit <n>] [--canvas <canvasId>] # NOTES
|
|
297
|
+
cnotes canvas search "<query>" [--limit <n>] # CANVASES
|
|
286
298
|
```
|
|
287
299
|
|
|
288
300
|
### Types (`cnotes types` / `cnotes t`)
|