spine-framework 0.2.1 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/status.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2JxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAmBtD"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/status.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkOxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAmBtD"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @module cli/commands/update-app
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine-framework update-app <slug>` — Check for and assist with app updates.
8
+ *
9
+ * Design principle: the agentic IDE is the merge tool. This command never
10
+ * writes to custom/apps/. It only:
11
+ * 1. Gets the new version into node_modules/ (read-only upstream reference)
12
+ * 2. Gives the agent a complete picture: versions, changelog, file diff summary
13
+ * 3. Records the new version in DB once the agent signals it is done (--accept)
14
+ *
15
+ * **Usage:**
16
+ * ```bash
17
+ * spine-framework update-app cortex # check for updates
18
+ * spine-framework update-app cortex --dry-run # full plan: changelog + file diff
19
+ * spine-framework update-app cortex --accept # record new version in DB only
20
+ * ```
21
+ */
22
+ import type { Command } from 'commander';
23
+ export declare function registerUpdateAppCommands(program: Command): void;
24
+ //# sourceMappingURL=update-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-app.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/update-app.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsWxC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,QAezD"}
@@ -20,7 +20,10 @@
20
20
  * | migrations | commands/migrations.ts |
21
21
  * | init | commands/init.ts |
22
22
  * | install-app | commands/install-app.ts |
23
+ * | update-app | commands/update-app.ts |
24
+ * | publish | commands/publish.ts |
23
25
  * | status | commands/status.ts |
26
+ * | claim | commands/claim.ts |
24
27
  * | uninstall | commands/uninstall-app.ts |
25
28
  *
26
29
  * **Usage:**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../.framework/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../.framework/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @module config/signals
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * Signal endpoint configuration for framework install tracking and engagement.
8
+ *
9
+ * The public framework sends anonymous signals to a configurable endpoint.
10
+ * Private Cortex instances receive and process these signals.
11
+ */
12
+ export interface SignalConfig {
13
+ endpoint: string;
14
+ timeout: number;
15
+ retryAttempts: number;
16
+ batchSize: number;
17
+ }
18
+ export declare const signalConfig: SignalConfig;
19
+ export declare const engagementSignals: {
20
+ readonly framework_installed: {
21
+ readonly score: 1;
22
+ readonly description: "Framework npm install completion";
23
+ };
24
+ readonly framework_initialized: {
25
+ readonly score: 3;
26
+ readonly description: "First successful startup";
27
+ };
28
+ readonly framework_connected_db: {
29
+ readonly score: 5;
30
+ readonly description: "Database connection success";
31
+ };
32
+ readonly app_install: {
33
+ readonly score: 4;
34
+ readonly description: "App installation";
35
+ };
36
+ readonly app_initialized: {
37
+ readonly score: 4;
38
+ readonly description: "App first load";
39
+ };
40
+ readonly app_first_action: {
41
+ readonly score: 6;
42
+ readonly description: "First feature usage";
43
+ };
44
+ readonly account_created: {
45
+ readonly score: 8;
46
+ readonly description: "Anonymous → identified migration";
47
+ };
48
+ readonly first_deploy: {
49
+ readonly score: 10;
50
+ readonly description: "Production deployment";
51
+ };
52
+ readonly team_collaboration: {
53
+ readonly score: 12;
54
+ readonly description: "Multi-user usage";
55
+ };
56
+ };
57
+ export type EngagementSignalType = keyof typeof engagementSignals;
58
+ export declare const claimTriggers: {
59
+ readonly immediate: 0;
60
+ readonly gentle_nudge: 3;
61
+ readonly value_realized: 5;
62
+ readonly ecosystem_engaged: 8;
63
+ readonly power_user: 10;
64
+ };
65
+ export interface EngagementEntry {
66
+ type: EngagementSignalType;
67
+ timestamp: string;
68
+ score: number;
69
+ }
70
+ export interface EngagementData {
71
+ framework_install_serial: string;
72
+ engagement_score: number;
73
+ signals: EngagementEntry[];
74
+ claim_status: 'anonymous' | 'claimed' | 'pending';
75
+ last_claim_prompt?: string;
76
+ account_id?: string;
77
+ }
78
+ export interface ClaimPrompt {
79
+ timing: keyof typeof claimTriggers;
80
+ message: string;
81
+ }
82
+ //# sourceMappingURL=signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../.framework/config/signals.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,YAAY,EAAE,YAK1B,CAAA;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUpB,CAAA;AAEV,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,iBAAiB,CAAA;AAGjE,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAA;AAEV,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,oBAAoB,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,wBAAwB,EAAE,MAAM,CAAA;IAChC,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,YAAY,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;IACjD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,OAAO,aAAa,CAAA;IAClC,OAAO,EAAE,MAAM,CAAA;CAChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spine-framework",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "private": false,
5
5
  "description": "Spine — enterprise application framework built on Supabase + Netlify + React",
6
6
  "type": "module",
@@ -26,7 +26,8 @@
26
26
  "node": ">=18.0.0"
27
27
  },
28
28
  "bin": {
29
- "spine-framework": "./bin/spine-framework.cjs"
29
+ "spine-framework": "./bin/spine-framework.js",
30
+ "spine": "./bin/spine-framework.js"
30
31
  },
31
32
  "exports": {
32
33
  ".": {
@@ -86,7 +87,7 @@
86
87
  "test:integration": "vitest run .framework/tests/integration",
87
88
  "test:boundary": "bash scripts/boundary-check.sh",
88
89
  "test:custom": "vitest run custom/tests",
89
- "postinstall": "node bin/welcome.cjs || true",
90
+ "postinstall": "node bin/welcome.js || true",
90
91
  "docs": "typedoc --config config/typedoc.json"
91
92
  },
92
93
  "dependencies": {
package/bin/ws-shim.cjs DELETED
@@ -1,8 +0,0 @@
1
- // Polyfill globalThis.WebSocket with the 'ws' package for Node < 22.
2
- // Required by supabase-js Realtime client which checks for WebSocket at construction time.
3
- if (typeof globalThis.WebSocket === 'undefined') {
4
- try {
5
- const { WebSocket } = require('ws')
6
- globalThis.WebSocket = WebSocket
7
- } catch {}
8
- }