sandstream-kit 1.1.0 → 1.3.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 +101 -92
- package/dist/adapters/expo-eas.js +1 -1
- package/dist/adapters/expo-eas.js.map +1 -1
- package/dist/audit-logging-service.js +1 -1
- package/dist/audit-logging-service.js.map +1 -1
- package/dist/author-verification.js +1 -1
- package/dist/author-verification.js.map +1 -1
- package/dist/check-web-search.js +37 -6
- package/dist/check-web-search.js.map +1 -1
- package/dist/cli-shared.d.ts +4 -0
- package/dist/cli-shared.js +11 -0
- package/dist/cli-shared.js.map +1 -0
- package/dist/cli.js +175 -1189
- package/dist/cli.js.map +1 -1
- package/dist/commands/audit.d.ts +1 -0
- package/dist/commands/audit.js +99 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/auth.d.ts +1 -0
- package/dist/commands/auth.js +121 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/env.d.ts +1 -0
- package/dist/commands/env.js +149 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/hooks.d.ts +1 -0
- package/dist/commands/hooks.js +146 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/mcp.d.ts +1 -0
- package/dist/commands/mcp.js +120 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/memory.d.ts +1 -0
- package/dist/commands/memory.js +534 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -1
- package/dist/mcp-server.js +59 -6
- package/dist/mcp-server.js.map +1 -1
- package/dist/memory/amazonq.d.ts +5 -0
- package/dist/memory/amazonq.js +161 -0
- package/dist/memory/amazonq.js.map +1 -0
- package/dist/memory/cline.d.ts +5 -0
- package/dist/memory/cline.js +117 -0
- package/dist/memory/cline.js.map +1 -0
- package/dist/memory/codex.d.ts +5 -0
- package/dist/memory/codex.js +150 -0
- package/dist/memory/codex.js.map +1 -0
- package/dist/memory/continue.d.ts +5 -0
- package/dist/memory/continue.js +116 -0
- package/dist/memory/continue.js.map +1 -0
- package/dist/memory/cursor.d.ts +4 -0
- package/dist/memory/cursor.js +116 -0
- package/dist/memory/cursor.js.map +1 -0
- package/dist/memory/db.d.ts +12 -1
- package/dist/memory/db.js +43 -1
- package/dist/memory/db.js.map +1 -1
- package/dist/memory/gemini.d.ts +5 -0
- package/dist/memory/gemini.js +176 -0
- package/dist/memory/gemini.js.map +1 -0
- package/dist/memory/hook.d.ts +9 -0
- package/dist/memory/hook.js +34 -1
- package/dist/memory/hook.js.map +1 -1
- package/dist/memory/install.js +1 -0
- package/dist/memory/install.js.map +1 -1
- package/dist/memory/merge.d.ts +18 -0
- package/dist/memory/merge.js +109 -0
- package/dist/memory/merge.js.map +1 -0
- package/dist/memory/parser.d.ts +9 -0
- package/dist/memory/parser.js +40 -3
- package/dist/memory/parser.js.map +1 -1
- package/dist/memory/suggest.d.ts +21 -0
- package/dist/memory/suggest.js +36 -0
- package/dist/memory/suggest.js.map +1 -0
- package/dist/onepassword.js +1 -1
- package/dist/onepassword.js.map +1 -1
- package/dist/open.js +8 -2
- package/dist/open.js.map +1 -1
- package/dist/run.js +1 -1
- package/dist/run.js.map +1 -1
- package/dist/service-auth.d.ts +31 -0
- package/dist/service-auth.js +47 -0
- package/dist/service-auth.js.map +1 -0
- package/dist/stack-detector.js +53 -76
- package/dist/stack-detector.js.map +1 -1
- package/dist/status.d.ts +9 -0
- package/dist/status.js +119 -0
- package/dist/status.js.map +1 -0
- package/package.json +9 -4
- package/dist/memory/backup 2.d.ts +0 -6
- package/dist/memory/backup 2.js +0 -80
- package/dist/memory/backup 2.js.map +0 -1
- package/dist/memory/db 2.d.ts +0 -40
- package/dist/memory/db 2.js +0 -233
- package/dist/memory/db 2.js.map +0 -1
- package/dist/memory/hook 2.d.ts +0 -6
- package/dist/memory/hook 2.js +0 -51
- package/dist/memory/hook 2.js.map +0 -1
- package/dist/memory/hook.test 2.d.ts +0 -1
- package/dist/memory/hook.test 2.js +0 -35
- package/dist/memory/hook.test 2.js.map +0 -1
- package/dist/memory/install 2.d.ts +0 -8
- package/dist/memory/install 2.js +0 -72
- package/dist/memory/install 2.js.map +0 -1
- package/dist/memory/install.test 2.d.ts +0 -1
- package/dist/memory/install.test 2.js +0 -59
- package/dist/memory/install.test 2.js.map +0 -1
- package/dist/memory/pal 2.d.ts +0 -47
- package/dist/memory/pal 2.js +0 -154
- package/dist/memory/pal 2.js.map +0 -1
- package/dist/memory/project 2.d.ts +0 -1
- package/dist/memory/project 2.js +0 -24
- package/dist/memory/project 2.js.map +0 -1
- package/dist/memory/scan 2.d.ts +0 -15
- package/dist/memory/scan 2.js +0 -94
- package/dist/memory/scan 2.js.map +0 -1
- package/dist/memory/scan.test 2.d.ts +0 -1
- package/dist/memory/scan.test 2.js +0 -55
- package/dist/memory/scan.test 2.js.map +0 -1
- package/dist/memory/shared 2.d.ts +0 -33
- package/dist/memory/shared 2.js +0 -120
- package/dist/memory/shared 2.js.map +0 -1
- package/dist/memory/threads 2.d.ts +0 -37
- package/dist/memory/threads 2.js +0 -50
- package/dist/memory/threads 2.js.map +0 -1
- package/dist/memory/threads.test 2.d.ts +0 -1
- package/dist/memory/threads.test 2.js +0 -66
- package/dist/memory/threads.test 2.js.map +0 -1
- package/dist/memory/types 2.d.ts +0 -52
- package/dist/memory/types 2.js +0 -5
- package/dist/memory/types 2.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/memory/suggest.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAUrD,MAAM,UAAU,kBAAkB,CAAC,EAAgB,EAAE,OAA2B,EAAE;IAChF,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAa;QACtB,0DAA0D,OAAO,IAAI;QACrE,EAAE;QACF,iCAAiC;KAClC,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1D,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,IAAI,CACR,4EAA4E,EAC5E,2EAA2E,EAC3E,mFAAmF,EACnF,yFAAyF,EACzF,EAAE,EACF,8CAA8C,EAC9C,gCAAgC,EAChC,0EAA0E,CAC3E,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACnG,CAAC"}
|
package/dist/onepassword.js
CHANGED
|
@@ -134,7 +134,7 @@ export function generate1PasswordRef(vault, item, field) {
|
|
|
134
134
|
*/
|
|
135
135
|
export function validate1PasswordRef(ref) {
|
|
136
136
|
// ref should be op://vault/item or op://vault/item/field
|
|
137
|
-
const pattern = /^op:\/\/[
|
|
137
|
+
const pattern = /^op:\/\/[^/]+\/[^/]+(\/.+)?$/;
|
|
138
138
|
return pattern.test(ref);
|
|
139
139
|
}
|
|
140
140
|
//# sourceMappingURL=onepassword.js.map
|
package/dist/onepassword.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onepassword.js","sourceRoot":"","sources":["../src/onepassword.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAsBvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,8BAA8B;QAC9B,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;YAChE,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,wCAAwC;aAChD,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI;aACpB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,iFAAiF;aACzF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,KAAK;YACpB,KAAK,EACH,gGAAgG;SACnG,CAAC;IACJ,CAAC;AACH,CAAC;AAWD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE;YACxE,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAyB,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAoBD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,wDAAwD;SAC/D,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,gEAAgE;SACvE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,yDAAyD;SAChE,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,qDAAqD;SAC5D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,IAAI,EACF,4EAA4E;YAC5E,iEAAiE;KACpE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE;YACtE,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAuB,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAC3B,IAAI,EACJ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,EACrD,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAsB,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,IAAY,EACZ,KAAc;IAEd,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,QAAQ,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,QAAQ,KAAK,IAAI,IAAI,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,yDAAyD;IACzD,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"onepassword.js","sourceRoot":"","sources":["../src/onepassword.ts"],"names":[],"mappings":"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"}
|
package/dist/open.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { platform } from "node:os";
|
|
3
|
+
import { isNonInteractive } from "./environment.js";
|
|
3
4
|
/** Known service dashboard mappings */
|
|
4
5
|
const SERVICES = [
|
|
5
6
|
{
|
|
@@ -99,13 +100,18 @@ export function getServiceUrl(name, env) {
|
|
|
99
100
|
* Falls back to printing the URL if opening fails.
|
|
100
101
|
*/
|
|
101
102
|
export async function openInBrowser(url) {
|
|
103
|
+
// Never spawn a browser in automation/CI/tests — print the URL instead. This
|
|
104
|
+
// mirrors login.ts's runInteractive guard and keeps `npm test` hermetic
|
|
105
|
+
// (no service's dashboard, e.g. Stripe's, pops a window during the suite).
|
|
106
|
+
if (isNonInteractive()) {
|
|
107
|
+
return { success: true, message: `Non-interactive — visit: ${url}` };
|
|
108
|
+
}
|
|
102
109
|
// Determine the open command based on platform
|
|
103
110
|
const cmd = platform() === "darwin" ? "open" : platform() === "win32" ? "start" : "xdg-open";
|
|
104
111
|
return new Promise((resolve) => {
|
|
105
112
|
const child = spawn(cmd, [url], { stdio: "pipe" });
|
|
106
|
-
let timeout;
|
|
107
113
|
// Set a timeout to consider it successful if no error within 100ms
|
|
108
|
-
timeout = setTimeout(() => {
|
|
114
|
+
const timeout = setTimeout(() => {
|
|
109
115
|
resolve({
|
|
110
116
|
success: true,
|
|
111
117
|
message: `Opened in browser: ${url}`,
|
package/dist/open.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open.js","sourceRoot":"","sources":["../src/open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"open.js","sourceRoot":"","sources":["../src/open.ts"],"names":[],"mappings":"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"}
|
package/dist/run.js
CHANGED
|
@@ -12,7 +12,7 @@ export async function executeCommand(opts) {
|
|
|
12
12
|
throw new Error("No command provided");
|
|
13
13
|
}
|
|
14
14
|
// Build environment
|
|
15
|
-
|
|
15
|
+
const env = inheritEnv ? { ...process.env } : {};
|
|
16
16
|
// Load .env.local if it exists
|
|
17
17
|
const envPath = resolve(cwd, ".env.local");
|
|
18
18
|
try {
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAgB;IACnD,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAExF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,oBAAoB;IACpB,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* kit service auth strategies — how kit obtains each service's credential.
|
|
3
|
+
*
|
|
4
|
+
* Deterministic resolver (no side effects, no model calls). A service declares
|
|
5
|
+
* `auth` in .kit.toml; absent that, it's inferred:
|
|
6
|
+
*
|
|
7
|
+
* - "vault" — credential lives in the configured vault; `kit secrets`
|
|
8
|
+
* resolves it into the env. No interactive login.
|
|
9
|
+
* - "interactive" — the tool owns its auth; kit runs its `login` command
|
|
10
|
+
* (e.g. `gh auth login`). Default when a login command exists.
|
|
11
|
+
* - "capture" — kit prompts for the token once and stores it to the vault
|
|
12
|
+
* (capture-to-vault). Execution is intentionally NOT wired
|
|
13
|
+
* here yet — this resolver only PLANS; `kit login --plan`
|
|
14
|
+
* surfaces it. (The capture UX is a deliberate follow-up.)
|
|
15
|
+
*
|
|
16
|
+
* Passkey-awareness: some interactive logins open a browser / require a passkey,
|
|
17
|
+
* so they can't be scripted on a fresh machine — the plan flags that explicitly.
|
|
18
|
+
*/
|
|
19
|
+
import type { ServiceConfig } from "./config.js";
|
|
20
|
+
export type AuthStrategy = "vault" | "capture" | "interactive";
|
|
21
|
+
export interface ResolvedAuth {
|
|
22
|
+
name: string;
|
|
23
|
+
strategy: AuthStrategy;
|
|
24
|
+
/** Interactive login likely opens a browser / needs a passkey (can't be scripted). */
|
|
25
|
+
passkey: boolean;
|
|
26
|
+
/** Deterministic next-step description. */
|
|
27
|
+
instruction: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function resolveServiceAuth(name: string, config: ServiceConfig): ResolvedAuth;
|
|
30
|
+
/** Resolve every service's auth plan, sorted by name for stable output. */
|
|
31
|
+
export declare function resolveAllAuth(services: Record<string, ServiceConfig>): ResolvedAuth[];
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// Interactive logins that open a browser and may require a passkey / device approval.
|
|
2
|
+
const PASSKEY_SERVICES = new Set([
|
|
3
|
+
"github",
|
|
4
|
+
"gh",
|
|
5
|
+
"vercel",
|
|
6
|
+
"supabase",
|
|
7
|
+
"cloudflare",
|
|
8
|
+
"fly",
|
|
9
|
+
"railway",
|
|
10
|
+
"gcloud",
|
|
11
|
+
"aws",
|
|
12
|
+
"azure",
|
|
13
|
+
]);
|
|
14
|
+
function isStrategy(v) {
|
|
15
|
+
return v === "vault" || v === "capture" || v === "interactive";
|
|
16
|
+
}
|
|
17
|
+
export function resolveServiceAuth(name, config) {
|
|
18
|
+
const explicit = config.auth;
|
|
19
|
+
const strategy = isStrategy(explicit)
|
|
20
|
+
? explicit
|
|
21
|
+
: config.login
|
|
22
|
+
? "interactive"
|
|
23
|
+
: "vault";
|
|
24
|
+
const passkey = strategy === "interactive" && PASSKEY_SERVICES.has(name.toLowerCase());
|
|
25
|
+
let instruction;
|
|
26
|
+
switch (strategy) {
|
|
27
|
+
case "vault":
|
|
28
|
+
instruction = "credential resolved from the configured vault (run `kit secrets`)";
|
|
29
|
+
break;
|
|
30
|
+
case "capture":
|
|
31
|
+
instruction = "capture-to-vault: `kit secrets set <KEY> --stdin` (paste once, stored in the vault)";
|
|
32
|
+
break;
|
|
33
|
+
case "interactive":
|
|
34
|
+
instruction = config.login
|
|
35
|
+
? `interactive login: ${config.login}${passkey ? " — needs a browser/passkey, can't be scripted on a fresh machine" : ""}`
|
|
36
|
+
: "interactive login required (no login command configured)";
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
return { name, strategy, passkey, instruction };
|
|
40
|
+
}
|
|
41
|
+
/** Resolve every service's auth plan, sorted by name for stable output. */
|
|
42
|
+
export function resolveAllAuth(services) {
|
|
43
|
+
return Object.keys(services)
|
|
44
|
+
.sort()
|
|
45
|
+
.map((name) => resolveServiceAuth(name, services[name]));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=service-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-auth.js","sourceRoot":"","sources":["../src/service-auth.ts"],"names":[],"mappings":"AA+BA,sFAAsF;AACtF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,KAAK;IACL,SAAS;IACT,QAAQ;IACR,KAAK;IACL,OAAO;CACR,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,aAAa,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,MAAqB;IACpE,MAAM,QAAQ,GAAI,MAA6B,CAAC,IAAI,CAAC;IACrD,MAAM,QAAQ,GAAiB,UAAU,CAAC,QAAQ,CAAC;QACjD,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,MAAM,CAAC,KAAK;YACZ,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,OAAO,CAAC;IAEd,MAAM,OAAO,GAAG,QAAQ,KAAK,aAAa,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAEvF,IAAI,WAAmB,CAAC;IACxB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,WAAW,GAAG,mEAAmE,CAAC;YAClF,MAAM;QACR,KAAK,SAAS;YACZ,WAAW,GAAG,qFAAqF,CAAC;YACpG,MAAM;QACR,KAAK,aAAa;YAChB,WAAW,GAAG,MAAM,CAAC,KAAK;gBACxB,CAAC,CAAC,sBAAsB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,kEAAkE,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1H,CAAC,CAAC,0DAA0D,CAAC;YAC/D,MAAM;IACV,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClD,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAAC,QAAuC;IACpE,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;SACzB,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC;AAC9D,CAAC"}
|
package/dist/stack-detector.js
CHANGED
|
@@ -48,6 +48,40 @@ function detectPackageManager(pkg, cwd) {
|
|
|
48
48
|
return "npm";
|
|
49
49
|
})();
|
|
50
50
|
}
|
|
51
|
+
// Service = matched if any dep is present OR any marker file exists. Order here
|
|
52
|
+
// is the order services are reported. Adding a service is one row, not a new if.
|
|
53
|
+
const SERVICE_DETECTORS = [
|
|
54
|
+
{ service: "stripe", deps: ["stripe"] },
|
|
55
|
+
{ service: "supabase", deps: ["@supabase/supabase-js"], files: ["supabase"] },
|
|
56
|
+
{ service: "prisma", deps: ["prisma", "@prisma/client"] },
|
|
57
|
+
{ service: "resend", deps: ["resend"] },
|
|
58
|
+
{ service: "clerk", deps: ["@clerk/nextjs", "@clerk/clerk-react"] },
|
|
59
|
+
{ service: "drizzle", deps: ["drizzle-orm"] },
|
|
60
|
+
{ service: "liveblocks", deps: ["liveblocks", "@liveblocks/client"] },
|
|
61
|
+
{ service: "trigger", deps: ["@trigger.dev/sdk", "trigger.dev"] },
|
|
62
|
+
{ service: "inngest", deps: ["inngest"] },
|
|
63
|
+
{ service: "vercel", deps: ["@vercel/analytics", "vercel"], files: ["vercel.json"] },
|
|
64
|
+
{ service: "expo", files: [".expo"] },
|
|
65
|
+
{
|
|
66
|
+
service: "sentry",
|
|
67
|
+
deps: ["@sentry/nextjs", "@sentry/node", "@sentry/react", "@sentry/svelte", "@sentry/astro", "@sentry/remix"],
|
|
68
|
+
},
|
|
69
|
+
{ service: "typeorm", deps: ["typeorm", "@nestjs/typeorm"] },
|
|
70
|
+
{ service: "mongoose", deps: ["mongoose", "@nestjs/mongoose"] },
|
|
71
|
+
{ service: "netlify", files: ["netlify.toml"] },
|
|
72
|
+
{ service: "cloudflare-pages", files: ["wrangler.toml"] },
|
|
73
|
+
];
|
|
74
|
+
// Framework = first match wins (priority order: meta-frameworks before their base).
|
|
75
|
+
const FRAMEWORK_DETECTORS = [
|
|
76
|
+
{ framework: "nextjs", deps: ["next"] },
|
|
77
|
+
{ framework: "remix", deps: ["@remix-run/node", "@remix-run/react"] },
|
|
78
|
+
{ framework: "astro", deps: ["astro"] },
|
|
79
|
+
{ framework: "sveltekit", deps: ["@sveltejs/kit"] },
|
|
80
|
+
{ framework: "nestjs", deps: ["@nestjs/core"] },
|
|
81
|
+
{ framework: "express", deps: ["express"] },
|
|
82
|
+
{ framework: "react", deps: ["react"] },
|
|
83
|
+
{ framework: "vue", deps: ["vue"] },
|
|
84
|
+
];
|
|
51
85
|
async function detectFromPackageJson(cwd) {
|
|
52
86
|
const pkg = await readJson(join(cwd, "package.json"));
|
|
53
87
|
if (!pkg)
|
|
@@ -58,83 +92,26 @@ async function detectFromPackageJson(cwd) {
|
|
|
58
92
|
if (pm !== "npm")
|
|
59
93
|
tools[pm] = "latest";
|
|
60
94
|
const services = [];
|
|
61
|
-
// Detect services by
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (hasDep(pkg, "drizzle-orm"))
|
|
76
|
-
services.push("drizzle");
|
|
77
|
-
if (hasDep(pkg, "liveblocks") || hasDep(pkg, "@liveblocks/client")) {
|
|
78
|
-
services.push("liveblocks");
|
|
79
|
-
}
|
|
80
|
-
if (hasDep(pkg, "@trigger.dev/sdk") || hasDep(pkg, "trigger.dev")) {
|
|
81
|
-
services.push("trigger");
|
|
82
|
-
}
|
|
83
|
-
if (hasDep(pkg, "inngest"))
|
|
84
|
-
services.push("inngest");
|
|
85
|
-
if (hasDep(pkg, "@vercel/analytics") ||
|
|
86
|
-
hasDep(pkg, "vercel") ||
|
|
87
|
-
(await fileExists(join(cwd, "vercel.json")))) {
|
|
88
|
-
services.push("vercel");
|
|
89
|
-
}
|
|
90
|
-
if (await fileExists(join(cwd, ".expo")))
|
|
91
|
-
services.push("expo");
|
|
92
|
-
// Sentry — any @sentry/* package
|
|
93
|
-
if (hasDep(pkg, "@sentry/nextjs") ||
|
|
94
|
-
hasDep(pkg, "@sentry/node") ||
|
|
95
|
-
hasDep(pkg, "@sentry/react") ||
|
|
96
|
-
hasDep(pkg, "@sentry/svelte") ||
|
|
97
|
-
hasDep(pkg, "@sentry/astro") ||
|
|
98
|
-
hasDep(pkg, "@sentry/remix")) {
|
|
99
|
-
services.push("sentry");
|
|
100
|
-
}
|
|
101
|
-
// NestJS specific: TypeORM, Mongoose
|
|
102
|
-
if (hasDep(pkg, "typeorm") || hasDep(pkg, "@nestjs/typeorm")) {
|
|
103
|
-
services.push("typeorm");
|
|
104
|
-
}
|
|
105
|
-
if (hasDep(pkg, "mongoose") || hasDep(pkg, "@nestjs/mongoose")) {
|
|
106
|
-
services.push("mongoose");
|
|
107
|
-
}
|
|
108
|
-
// Netlify / Cloudflare Pages via config files
|
|
109
|
-
if (await fileExists(join(cwd, "netlify.toml")))
|
|
110
|
-
services.push("netlify");
|
|
111
|
-
if (await fileExists(join(cwd, "wrangler.toml")))
|
|
112
|
-
services.push("cloudflare-pages");
|
|
113
|
-
// Detect framework
|
|
95
|
+
// Detect services by dependency or marker file (table-driven; preserves order).
|
|
96
|
+
for (const d of SERVICE_DETECTORS) {
|
|
97
|
+
const byDep = d.deps?.some((dep) => hasDep(pkg, dep)) ?? false;
|
|
98
|
+
let byFile = false;
|
|
99
|
+
for (const file of d.files ?? []) {
|
|
100
|
+
if (await fileExists(join(cwd, file))) {
|
|
101
|
+
byFile = true;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (byDep || byFile)
|
|
106
|
+
services.push(d.service);
|
|
107
|
+
}
|
|
108
|
+
// Framework — first match wins (priority order in FRAMEWORK_DETECTORS).
|
|
114
109
|
let framework;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
else if (hasDep(pkg, "astro")) {
|
|
122
|
-
framework = "astro";
|
|
123
|
-
}
|
|
124
|
-
else if (hasDep(pkg, "@sveltejs/kit")) {
|
|
125
|
-
framework = "sveltekit";
|
|
126
|
-
}
|
|
127
|
-
else if (hasDep(pkg, "@nestjs/core")) {
|
|
128
|
-
framework = "nestjs";
|
|
129
|
-
}
|
|
130
|
-
else if (hasDep(pkg, "express")) {
|
|
131
|
-
framework = "express";
|
|
132
|
-
}
|
|
133
|
-
else if (hasDep(pkg, "react")) {
|
|
134
|
-
framework = "react";
|
|
135
|
-
}
|
|
136
|
-
else if (hasDep(pkg, "vue")) {
|
|
137
|
-
framework = "vue";
|
|
110
|
+
for (const fw of FRAMEWORK_DETECTORS) {
|
|
111
|
+
if (fw.deps.some((dep) => hasDep(pkg, dep))) {
|
|
112
|
+
framework = fw.framework;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
138
115
|
}
|
|
139
116
|
const confidence = framework ? 0.9 : 0.6;
|
|
140
117
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-detector.js","sourceRoot":"","sources":["../src/stack-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAiBjC,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAI,IAAY;IACrC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,GAAgB,EAAE,IAAY;IAC5C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,WAAW,CAAC,GAAgB;IACnC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;IAClC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAgB,EAAE,GAAW;IACzD,IAAI,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,IAAI,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,IAAI,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzE,sBAAsB;IACtB,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;QACjE,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;QAC5D,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,EAAE,CAAC;AACP,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"stack-detector.js","sourceRoot":"","sources":["../src/stack-detector.ts"],"names":[],"mappings":"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"}
|
package/dist/status.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface StatusItem {
|
|
2
|
+
key: string;
|
|
3
|
+
label: string;
|
|
4
|
+
ok: boolean;
|
|
5
|
+
detail: string;
|
|
6
|
+
/** Rule-based next step when not ok (deterministic, no inference). */
|
|
7
|
+
hint?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function gatherStatus(cwd?: string): Promise<StatusItem[]>;
|
package/dist/status.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* kit status — a deterministic "where you are + what to do next" view across kit.
|
|
3
|
+
*
|
|
4
|
+
* Pure facts + rule-based next steps (never LLM advice). Each signal is checked
|
|
5
|
+
* against real local state: the config file, the vault declaration, the agent
|
|
6
|
+
* managed block, the memory store, the installed hooks. Designed to grow: add a
|
|
7
|
+
* StatusItem per subsystem (prescan drift, supply-chain, elevation, …).
|
|
8
|
+
*/
|
|
9
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import { loadConfig } from "./config.js";
|
|
12
|
+
import { KIT_BLOCK_BEGIN } from "./agent-config.js";
|
|
13
|
+
import { checkGitignore } from "./check-gitignore.js";
|
|
14
|
+
import { openMemoryDb, getStats } from "./memory/db.js";
|
|
15
|
+
import { getClaudeSettingsPath } from "./memory/install.js";
|
|
16
|
+
// Dependency allowlist file (kept as a literal here, matching security-policy.ts
|
|
17
|
+
// + post-pull-audit.ts — the convention isn't exported).
|
|
18
|
+
const ALLOWLIST_FILE = ".kit-allowlist.json";
|
|
19
|
+
function fileIncludes(path, needle) {
|
|
20
|
+
if (!existsSync(path))
|
|
21
|
+
return false;
|
|
22
|
+
try {
|
|
23
|
+
return readFileSync(path, "utf8").includes(needle);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return false; // unreadable — treat as absent
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export async function gatherStatus(cwd = process.cwd()) {
|
|
30
|
+
const items = [];
|
|
31
|
+
const configPath = join(cwd, ".kit.toml");
|
|
32
|
+
const hasConfig = existsSync(configPath);
|
|
33
|
+
items.push({
|
|
34
|
+
key: "config",
|
|
35
|
+
label: ".kit.toml",
|
|
36
|
+
ok: hasConfig,
|
|
37
|
+
detail: hasConfig ? "present" : "missing",
|
|
38
|
+
hint: hasConfig ? undefined : "run `kit init`",
|
|
39
|
+
});
|
|
40
|
+
if (hasConfig) {
|
|
41
|
+
try {
|
|
42
|
+
const cfg = await loadConfig(configPath);
|
|
43
|
+
const hasVault = !!(cfg.secrets &&
|
|
44
|
+
(cfg.secrets.store || (cfg.secrets.keys && Object.keys(cfg.secrets.keys).length > 0)));
|
|
45
|
+
items.push({
|
|
46
|
+
key: "vault",
|
|
47
|
+
label: "secrets vault",
|
|
48
|
+
ok: hasVault,
|
|
49
|
+
detail: hasVault ? `store: ${cfg.secrets?.store ?? "keys"}` : "none configured",
|
|
50
|
+
hint: hasVault ? undefined : "configure [secrets] + `kit secrets`",
|
|
51
|
+
});
|
|
52
|
+
const toolCount = cfg.tools ? Object.keys(cfg.tools).length : 0;
|
|
53
|
+
items.push({
|
|
54
|
+
key: "tools",
|
|
55
|
+
label: "tools",
|
|
56
|
+
ok: toolCount > 0,
|
|
57
|
+
detail: `${toolCount} declared`,
|
|
58
|
+
hint: toolCount > 0 ? undefined : "declare [tools] in .kit.toml",
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// malformed config — skip the derived checks rather than crash
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Secret hygiene — does .gitignore cover the sensitive paths kit cares about?
|
|
66
|
+
const ignore = await checkGitignore(cwd);
|
|
67
|
+
items.push({
|
|
68
|
+
key: "gitignore",
|
|
69
|
+
label: "gitignore hygiene",
|
|
70
|
+
ok: ignore.missingPatterns.length === 0,
|
|
71
|
+
detail: ignore.missingPatterns.length === 0
|
|
72
|
+
? "sensitive paths covered"
|
|
73
|
+
: `${ignore.missingPatterns.length} sensitive path(s) unignored`,
|
|
74
|
+
hint: ignore.missingPatterns.length === 0 ? undefined : "run `kit security check-gitignore --fix`",
|
|
75
|
+
});
|
|
76
|
+
// Supply chain — is there a dependency allowlist to enforce on install?
|
|
77
|
+
const hasAllowlist = existsSync(join(cwd, ALLOWLIST_FILE));
|
|
78
|
+
items.push({
|
|
79
|
+
key: "dep-policy",
|
|
80
|
+
label: "dependency policy",
|
|
81
|
+
ok: hasAllowlist,
|
|
82
|
+
detail: hasAllowlist ? "allowlist present" : "no allowlist",
|
|
83
|
+
hint: hasAllowlist ? undefined : "run `kit security policy init`",
|
|
84
|
+
});
|
|
85
|
+
const wired = fileIncludes(join(cwd, "CLAUDE.md"), KIT_BLOCK_BEGIN);
|
|
86
|
+
items.push({
|
|
87
|
+
key: "agent-config",
|
|
88
|
+
label: "agent wired",
|
|
89
|
+
ok: wired,
|
|
90
|
+
detail: wired ? "CLAUDE.md kit block present" : "not wired",
|
|
91
|
+
hint: wired ? undefined : "run `kit agent-config`",
|
|
92
|
+
});
|
|
93
|
+
let messages = 0;
|
|
94
|
+
try {
|
|
95
|
+
const db = openMemoryDb();
|
|
96
|
+
messages = getStats(db).messages;
|
|
97
|
+
db.close();
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// memory store unavailable — reported as 0
|
|
101
|
+
}
|
|
102
|
+
items.push({
|
|
103
|
+
key: "memory",
|
|
104
|
+
label: "memory indexed",
|
|
105
|
+
ok: messages > 0,
|
|
106
|
+
detail: `${messages} messages`,
|
|
107
|
+
hint: messages > 0 ? undefined : "run `kit memory index`",
|
|
108
|
+
});
|
|
109
|
+
const hooked = fileIncludes(getClaudeSettingsPath(), "kit memory hook");
|
|
110
|
+
items.push({
|
|
111
|
+
key: "memory-hooks",
|
|
112
|
+
label: "memory hooks",
|
|
113
|
+
ok: hooked,
|
|
114
|
+
detail: hooked ? "installed" : "not installed",
|
|
115
|
+
hint: hooked ? undefined : "run `kit memory install`",
|
|
116
|
+
});
|
|
117
|
+
return items;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sandstream-kit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "developer kit. zero LLM, local-first, multi-vault. one command from git clone to working dev environment.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"build:prod": "npm run build --workspace=packages/adapter-sdk && npm run build --workspace=packages/kit-plugin-railway && npm run build --workspace=packages/kit-plugin-supabase && npm run build --workspace=packages/kit-plugin-vercel && npm run build --workspace=packages/kit-plugin-github && npm run build --workspace=packages/kit-plugin-stripe && npm run build --workspace=packages/kit-plugin-fly && npm run build --workspace=packages/kit-plugin-cloudflare && npm run build --workspace=packages/kit-plugin-snyk && npm run build --workspace=packages/kit-plugin-wiz && npm run build --workspace=packages/kit-plugin-sentry && rm -rf dist && tsc -p tsconfig.prod.json && chmod +x dist/cli.js",
|
|
29
29
|
"prepublishOnly": "npm run build:prod",
|
|
30
30
|
"dev": "tsx src/cli.ts",
|
|
31
|
-
"test": "KIT_BUMBLEBEE=0 KIT_NO_FAILURE_SIM=1 KIT_NO_UPDATE_CHECK=1 node --test --test-timeout=180000 --test-concurrency=2 dist/*.test.js dist/**/*.test.js"
|
|
31
|
+
"test": "KIT_NON_INTERACTIVE=1 KIT_BUMBLEBEE=0 KIT_NO_FAILURE_SIM=1 KIT_NO_UPDATE_CHECK=1 node --test --test-timeout=180000 --test-concurrency=2 dist/*.test.js dist/**/*.test.js",
|
|
32
|
+
"lint": "eslint src"
|
|
32
33
|
},
|
|
33
34
|
"dependencies": {
|
|
34
35
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
@@ -37,9 +38,13 @@
|
|
|
37
38
|
"zod": "4.3.6"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
41
|
+
"@eslint/js": "^9.39.4",
|
|
40
42
|
"@types/node": "22.19.15",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
+
"eslint": "^9.39.4",
|
|
44
|
+
"globals": "^17.6.0",
|
|
45
|
+
"tsx": "^4.22.4",
|
|
46
|
+
"typescript": "5.9.3",
|
|
47
|
+
"typescript-eslint": "^8.61.1"
|
|
43
48
|
},
|
|
44
49
|
"repository": {
|
|
45
50
|
"type": "git",
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/** Reject a too-short or obviously-weak backup passphrase (fail before encrypting). */
|
|
2
|
-
export declare function validatePassphrase(passphrase: string): void;
|
|
3
|
-
/** Encrypt the memory DB file into `outPath`. WAL is checkpointed first so the file is complete. */
|
|
4
|
-
export declare function backupEncrypted(passphrase: string, srcPath?: string, outPath?: string): void;
|
|
5
|
-
/** Decrypt a backup blob into `destPath`. Throws on a wrong passphrase or tampered blob (GCM auth). */
|
|
6
|
-
export declare function restoreEncrypted(passphrase: string, inPath: string, destPath: string): void;
|