@motebit/sdk 0.6.11 → 0.8.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.
Files changed (74) hide show
  1. package/README.md +15 -110
  2. package/dist/__tests__/appearance-config.test.d.ts +2 -0
  3. package/dist/__tests__/appearance-config.test.d.ts.map +1 -0
  4. package/dist/__tests__/appearance-config.test.js +104 -0
  5. package/dist/__tests__/appearance-config.test.js.map +1 -0
  6. package/dist/__tests__/branded-ids.test.d.ts +2 -0
  7. package/dist/__tests__/branded-ids.test.d.ts.map +1 -0
  8. package/dist/__tests__/branded-ids.test.js +70 -0
  9. package/dist/__tests__/branded-ids.test.js.map +1 -0
  10. package/dist/__tests__/index.test.d.ts +2 -0
  11. package/dist/__tests__/index.test.d.ts.map +1 -0
  12. package/dist/__tests__/index.test.js +194 -0
  13. package/dist/__tests__/index.test.js.map +1 -0
  14. package/dist/__tests__/provider-mode.test.d.ts +2 -0
  15. package/dist/__tests__/provider-mode.test.d.ts.map +1 -0
  16. package/dist/__tests__/provider-mode.test.js +180 -0
  17. package/dist/__tests__/provider-mode.test.js.map +1 -0
  18. package/dist/__tests__/provider-resolver.test.d.ts +2 -0
  19. package/dist/__tests__/provider-resolver.test.d.ts.map +1 -0
  20. package/dist/__tests__/provider-resolver.test.js +353 -0
  21. package/dist/__tests__/provider-resolver.test.js.map +1 -0
  22. package/dist/__tests__/voice-config.test.d.ts +2 -0
  23. package/dist/__tests__/voice-config.test.d.ts.map +1 -0
  24. package/dist/__tests__/voice-config.test.js +98 -0
  25. package/dist/__tests__/voice-config.test.js.map +1 -0
  26. package/dist/appearance-config.d.ts +55 -0
  27. package/dist/appearance-config.d.ts.map +1 -0
  28. package/dist/appearance-config.js +79 -0
  29. package/dist/appearance-config.js.map +1 -0
  30. package/dist/approval-presets.d.ts +16 -0
  31. package/dist/approval-presets.d.ts.map +1 -0
  32. package/dist/approval-presets.js +30 -0
  33. package/dist/approval-presets.js.map +1 -0
  34. package/dist/color-presets.d.ts +14 -0
  35. package/dist/color-presets.d.ts.map +1 -0
  36. package/dist/color-presets.js +17 -0
  37. package/dist/color-presets.js.map +1 -0
  38. package/dist/credential-types-doc.d.ts +73 -0
  39. package/dist/credential-types-doc.d.ts.map +1 -0
  40. package/dist/credential-types-doc.js +2 -0
  41. package/dist/credential-types-doc.js.map +1 -0
  42. package/dist/governance-config.d.ts +19 -0
  43. package/dist/governance-config.d.ts.map +1 -0
  44. package/dist/governance-config.js +15 -0
  45. package/dist/governance-config.js.map +1 -0
  46. package/dist/index.d.ts +97 -1045
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +12 -346
  49. package/dist/index.js.map +1 -1
  50. package/dist/models.d.ts +56 -0
  51. package/dist/models.d.ts.map +1 -0
  52. package/dist/models.js +85 -0
  53. package/dist/models.js.map +1 -0
  54. package/dist/provider-mode.d.ts +109 -0
  55. package/dist/provider-mode.d.ts.map +1 -0
  56. package/dist/provider-mode.js +179 -0
  57. package/dist/provider-mode.js.map +1 -0
  58. package/dist/provider-resolver.d.ts +179 -0
  59. package/dist/provider-resolver.d.ts.map +1 -0
  60. package/dist/provider-resolver.js +224 -0
  61. package/dist/provider-resolver.js.map +1 -0
  62. package/dist/risk-labels.d.ts +22 -0
  63. package/dist/risk-labels.d.ts.map +1 -0
  64. package/dist/risk-labels.js +28 -0
  65. package/dist/risk-labels.js.map +1 -0
  66. package/dist/surface-options.d.ts +34 -0
  67. package/dist/surface-options.d.ts.map +1 -0
  68. package/dist/surface-options.js +36 -0
  69. package/dist/surface-options.js.map +1 -0
  70. package/dist/voice-config.d.ts +52 -0
  71. package/dist/voice-config.d.ts.map +1 -0
  72. package/dist/voice-config.js +61 -0
  73. package/dist/voice-config.js.map +1 -0
  74. package/package.json +9 -6
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # @motebit/sdk
2
2
 
3
- Core protocol types for the motebit agent identity standard.
3
+ Product types for building on the Motebit runtime state vectors, creature behavior, rendering spec, memory graph, AI provider interface.
4
4
 
5
- Zero dependencies. Pure TypeScript interfaces, enums, branded ID types, and utility functions for building on the motebit protocol.
5
+ Re-exports all types from [`@motebit/protocol`](https://www.npmjs.com/package/@motebit/protocol) for convenience. If you only need protocol types (identity, receipts, credentials, settlement), use `@motebit/protocol` directly (MIT licensed).
6
6
 
7
7
  ## Install
8
8
 
@@ -10,119 +10,24 @@ Zero dependencies. Pure TypeScript interfaces, enums, branded ID types, and util
10
10
  npm install @motebit/sdk
11
11
  ```
12
12
 
13
- ## Usage
13
+ ## What's included
14
14
 
15
- ```typescript
16
- import {
17
- type MotebitState,
18
- type ExecutionReceipt,
19
- type AgentTask,
20
- TrustMode,
21
- BatteryMode,
22
- AgentTrustLevel,
23
- RiskLevel,
24
- } from "@motebit/sdk";
15
+ Everything from `@motebit/protocol` (re-exported), plus:
25
16
 
26
- // Typed agent state vector
27
- const state: MotebitState = {
28
- attention: 0.7,
29
- processing: 0.3,
30
- confidence: 0.85,
31
- affect_valence: 0.6,
32
- affect_arousal: 0.2,
33
- social_distance: 0.4,
34
- curiosity: 0.5,
35
- trust_mode: TrustMode.Guarded,
36
- battery_mode: BatteryMode.Normal,
37
- };
38
-
39
- // Typed execution receipt (returned by agents after task completion)
40
- const receipt: ExecutionReceipt = {
41
- task_id: "...",
42
- motebit_id: "...",
43
- device_id: "...",
44
- submitted_at: Date.now(),
45
- completed_at: Date.now(),
46
- status: "completed",
47
- result: "...",
48
- tools_used: ["web_search"],
49
- memories_formed: 2,
50
- prompt_hash: "sha256:...",
51
- result_hash: "sha256:...",
52
- signature: "ed25519:...",
53
- };
54
- ```
55
-
56
- ## Branded ID types
57
-
58
- The SDK exports branded string types that enforce compile-time safety at API boundaries:
59
-
60
- ```typescript
61
- import {
62
- type MotebitId,
63
- type DeviceId,
64
- type GoalId,
65
- type PlanId,
66
- type NodeId,
67
- asMotebitId,
68
- asDeviceId,
69
- } from "@motebit/sdk";
70
-
71
- // Prevent accidental ID swaps across API boundaries
72
- function submitTask(motebitId: MotebitId, deviceId: DeviceId) { ... }
73
-
74
- // Explicit branding at system boundaries
75
- const id = asMotebitId(rawString);
76
- ```
77
-
78
- ## Trust algebra
79
-
80
- ```typescript
81
- import {
82
- AgentTrustLevel,
83
- trustLevelToScore,
84
- composeTrustChain,
85
- evaluateTrustTransition,
86
- type AgentTrustRecord,
87
- } from "@motebit/sdk";
88
-
89
- // Compose trust through a delegation chain (semiring: max for parallel, multiply for serial)
90
- const chainTrust = composeTrustChain([0.9, 0.6, 0.8]); // 0.432
91
-
92
- // Evaluate whether a trust record should transition levels
93
- const newLevel = evaluateTrustTransition(record); // AgentTrustLevel | null
94
- ```
95
-
96
- ## API reference
97
-
98
- | Category | Key exports |
99
- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
100
- | **Branded IDs** | `MotebitId`, `DeviceId`, `NodeId`, `GoalId`, `EventId`, `ConversationId`, `PlanId` + `as*` factory functions |
101
- | **Identity** | `MotebitIdentity`, `MotebitType`, `AgentCapabilities` |
102
- | **State vector** | `MotebitState`, `TrustMode`, `BatteryMode` |
103
- | **Behavior** | `BehaviorCues`, `SPECIES_CONSTRAINTS` |
104
- | **Memory** | `MemoryNode`, `MemoryEdge`, `MemoryContent`, `MemoryCandidate`, `MemoryType`, `SensitivityLevel`, `RelationType` |
105
- | **Policy** | `PolicyDecision`, `ToolRiskProfile`, `RiskLevel`, `DataClass`, `SideEffect`, `TurnContext`, `InjectionWarning`, `ToolAuditEntry` |
106
- | **Tools** | `ToolDefinition`, `ToolResult`, `ToolHandler`, `ToolRegistry` |
107
- | **AI provider** | `ContextPack`, `AIResponse`, `IntelligenceProvider`, `ConversationMessage`, `ToolCall` |
108
- | **Events** | `EventLogEntry`, `EventType` |
109
- | **Sync** | `SyncCursor`, `ConflictEdge`, `SyncConversation`, `SyncConversationMessage` |
110
- | **Plans** | `Plan`, `PlanStep`, `PlanStatus`, `StepStatus` |
111
- | **Agent protocol** | `AgentTask`, `AgentTaskStatus`, `ExecutionReceipt`, `DeviceCapability` |
112
- | **Trust algebra** | `AgentTrustLevel`, `AgentTrustRecord`, `trustLevelToScore`, `composeTrustChain`, `joinParallelRoutes`, `evaluateTrustTransition`, `composeDelegationTrust` |
113
- | **Execution ledger** | `GoalExecutionManifest`, `ExecutionTimelineEntry`, `ExecutionStepSummary`, `DelegationReceiptSummary` |
114
- | **Market** | `BudgetAllocation`, `SettlementRecord`, `RouteScore`, `AgentServiceListing`, `MarketConfig` |
115
- | **Credentials** | `GradientCredentialSubject`, `ReputationCredentialSubject`, `TrustCredentialSubject`, `VC_TYPE_GRADIENT`, `VC_TYPE_REPUTATION`, `VC_TYPE_TRUST` |
116
- | **Precision** | `PrecisionWeights` |
117
- | **Privacy** | `AuditRecord`, `ExportManifest` |
118
- | **Render** | `RenderSpec`, `GeometrySpec`, `MaterialSpec`, `LightingSpec` |
17
+ - **State vector** `MotebitState`, `TrustMode`, `BatteryMode`
18
+ - **Behavior** `BehaviorCues`, `SPECIES_CONSTRAINTS`
19
+ - **Memory graph** — `MemoryNode`, `MemoryEdge`, `MemoryQuery`, `MemoryStorageAdapter`
20
+ - **Rendering** — `RenderSpec`, `GeometrySpec`, `MaterialSpec`, `LightingSpec`
21
+ - **AI provider** — `ContextPack`, `AIResponse`, `IntelligenceProvider`, `ConversationMessage`
22
+ - **Gradient** — `GradientSnapshot`, `GradientStoreAdapter`, `PrecisionWeights`
23
+ - **Export** — `ExportManifest`, `StorageAdapters`
119
24
 
120
25
  ## Related
121
26
 
122
- - [`@motebit/verify`](https://www.npmjs.com/package/@motebit/verify) — verify a `motebit.md` identity file signature
123
- - [`create-motebit`](https://www.npmjs.com/package/create-motebit) — scaffold a signed agent identity in 30 seconds
124
- - [motebit/identity@1.0 spec](https://github.com/motebit/motebit/blob/main/spec/identity-v1.md) — the open protocol specification
27
+ - [`@motebit/protocol`](https://www.npmjs.com/package/@motebit/protocol) — network protocol types (MIT, zero deps)
28
+ - [`@motebit/crypto`](https://www.npmjs.com/package/@motebit/crypto) — signature verification (MIT, zero deps)
29
+ - [`create-motebit`](https://www.npmjs.com/package/create-motebit) — scaffold a signed agent identity
125
30
 
126
31
  ## License
127
32
 
128
- MIT. Motebit is a trademark of Motebit, Inc.
33
+ MIT
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=appearance-config.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appearance-config.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/appearance-config.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,104 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { DEFAULT_APPEARANCE_CONFIG, migrateAppearanceConfig } from "../appearance-config.js";
3
+ describe("migrateAppearanceConfig", () => {
4
+ it("returns a fresh default when input is null", () => {
5
+ const result = migrateAppearanceConfig(null);
6
+ expect(result).toEqual(DEFAULT_APPEARANCE_CONFIG);
7
+ expect(result).not.toBe(DEFAULT_APPEARANCE_CONFIG);
8
+ });
9
+ it("returns a fresh default when input is undefined", () => {
10
+ expect(migrateAppearanceConfig(undefined)).toEqual(DEFAULT_APPEARANCE_CONFIG);
11
+ });
12
+ it("returns a fresh default when input is a primitive", () => {
13
+ expect(migrateAppearanceConfig("moonlight")).toEqual(DEFAULT_APPEARANCE_CONFIG);
14
+ expect(migrateAppearanceConfig(42)).toEqual(DEFAULT_APPEARANCE_CONFIG);
15
+ });
16
+ it("normalizes the canonical mobile shape", () => {
17
+ const input = {
18
+ colorPreset: "violet",
19
+ customHue: 180,
20
+ customSaturation: 0.5,
21
+ theme: "dark",
22
+ };
23
+ expect(migrateAppearanceConfig(input)).toEqual(input);
24
+ });
25
+ it("migrates the web legacy shape {preset, customHue, customSaturation}", () => {
26
+ const result = migrateAppearanceConfig({
27
+ preset: "rose",
28
+ customHue: 10,
29
+ customSaturation: 0.8,
30
+ });
31
+ expect(result.colorPreset).toBe("rose");
32
+ expect(result.customHue).toBe(10);
33
+ expect(result.customSaturation).toBe(0.8);
34
+ // theme not provided → default
35
+ expect(result.theme).toBe(DEFAULT_APPEARANCE_CONFIG.theme);
36
+ });
37
+ it("migrates the desktop Tauri snake_case shape", () => {
38
+ const result = migrateAppearanceConfig({
39
+ interior_color_preset: "ember",
40
+ custom_soul_color: { hue: 30, saturation: 0.9 },
41
+ });
42
+ expect(result.colorPreset).toBe("ember");
43
+ expect(result.customHue).toBe(30);
44
+ expect(result.customSaturation).toBe(0.9);
45
+ });
46
+ it("prefers canonical colorPreset over legacy keys when both present", () => {
47
+ const result = migrateAppearanceConfig({
48
+ colorPreset: "cyan",
49
+ preset: "rose",
50
+ interior_color_preset: "amber",
51
+ });
52
+ expect(result.colorPreset).toBe("cyan");
53
+ });
54
+ it("falls through preset priority: colorPreset → preset → interior_color_preset", () => {
55
+ expect(migrateAppearanceConfig({ preset: "rose" }).colorPreset).toBe("rose");
56
+ expect(migrateAppearanceConfig({ interior_color_preset: "amber" }).colorPreset).toBe("amber");
57
+ });
58
+ it("prefers canonical customHue/customSaturation over desktop snake_case", () => {
59
+ const result = migrateAppearanceConfig({
60
+ customHue: 100,
61
+ customSaturation: 0.3,
62
+ custom_soul_color: { hue: 200, saturation: 0.6 },
63
+ });
64
+ expect(result.customHue).toBe(100);
65
+ expect(result.customSaturation).toBe(0.3);
66
+ });
67
+ it("accepts partial desktop custom_soul_color (hue only, saturation only)", () => {
68
+ const hueOnly = migrateAppearanceConfig({
69
+ custom_soul_color: { hue: 45 },
70
+ });
71
+ expect(hueOnly.customHue).toBe(45);
72
+ expect(hueOnly.customSaturation).toBe(DEFAULT_APPEARANCE_CONFIG.customSaturation);
73
+ const satOnly = migrateAppearanceConfig({
74
+ custom_soul_color: { saturation: 0.4 },
75
+ });
76
+ expect(satOnly.customHue).toBe(DEFAULT_APPEARANCE_CONFIG.customHue);
77
+ expect(satOnly.customSaturation).toBe(0.4);
78
+ });
79
+ it("accepts all three theme values", () => {
80
+ expect(migrateAppearanceConfig({ theme: "light" }).theme).toBe("light");
81
+ expect(migrateAppearanceConfig({ theme: "dark" }).theme).toBe("dark");
82
+ expect(migrateAppearanceConfig({ theme: "system" }).theme).toBe("system");
83
+ });
84
+ it("falls back to default theme on invalid theme value", () => {
85
+ const result = migrateAppearanceConfig({ theme: "nonsense" });
86
+ expect(result.theme).toBe(DEFAULT_APPEARANCE_CONFIG.theme);
87
+ });
88
+ it("ignores wrong-type fields and uses defaults", () => {
89
+ const result = migrateAppearanceConfig({
90
+ colorPreset: 42, // wrong type
91
+ customHue: "purple", // wrong type
92
+ });
93
+ expect(result.colorPreset).toBe(DEFAULT_APPEARANCE_CONFIG.colorPreset);
94
+ expect(result.customHue).toBe(DEFAULT_APPEARANCE_CONFIG.customHue);
95
+ });
96
+ it("ignores unknown keys", () => {
97
+ const result = migrateAppearanceConfig({
98
+ colorPreset: "moonlight",
99
+ unrelated: "value",
100
+ });
101
+ expect(result).not.toHaveProperty("unrelated");
102
+ });
103
+ });
104
+ //# sourceMappingURL=appearance-config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appearance-config.test.js","sourceRoot":"","sources":["../../src/__tests__/appearance-config.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=branded-ids.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branded-ids.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/branded-ids.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,70 @@
1
+ import { describe, it, expect, expectTypeOf } from "vitest";
2
+ import { asMotebitId, asDeviceId, asNodeId, asGoalId, asEventId, asConversationId, asPlanId, asAllocationId, asSettlementId, asListingId, asProposalId, } from "../index.js";
3
+ describe("Branded ID types", () => {
4
+ it("string is assignable to branded type (backward compat)", () => {
5
+ expectTypeOf().toMatchTypeOf();
6
+ expectTypeOf().toMatchTypeOf();
7
+ expectTypeOf().toMatchTypeOf();
8
+ expectTypeOf().toMatchTypeOf();
9
+ });
10
+ it("branded type is assignable to string (for SQL, JSON)", () => {
11
+ expectTypeOf().toMatchTypeOf();
12
+ expectTypeOf().toMatchTypeOf();
13
+ });
14
+ it("branded types are NOT cross-assignable (catches the bug)", () => {
15
+ expectTypeOf().not.toMatchTypeOf();
16
+ expectTypeOf().not.toMatchTypeOf();
17
+ expectTypeOf().not.toMatchTypeOf();
18
+ expectTypeOf().not.toMatchTypeOf();
19
+ expectTypeOf().not.toMatchTypeOf();
20
+ });
21
+ });
22
+ describe("Branded ID branding functions", () => {
23
+ it("asMotebitId brands a string as MotebitId", () => {
24
+ const id = asMotebitId("test-motebit-id");
25
+ expect(id).toBe("test-motebit-id");
26
+ // Runtime value is a plain string
27
+ expect(typeof id).toBe("string");
28
+ });
29
+ it("asDeviceId brands a string as DeviceId", () => {
30
+ const id = asDeviceId("dev-001");
31
+ expect(id).toBe("dev-001");
32
+ });
33
+ it("asNodeId brands a string as NodeId", () => {
34
+ const id = asNodeId("node-abc");
35
+ expect(id).toBe("node-abc");
36
+ });
37
+ it("asGoalId brands a string as GoalId", () => {
38
+ const id = asGoalId("goal-xyz");
39
+ expect(id).toBe("goal-xyz");
40
+ });
41
+ it("asEventId brands a string as EventId", () => {
42
+ const id = asEventId("evt-123");
43
+ expect(id).toBe("evt-123");
44
+ });
45
+ it("asConversationId brands a string as ConversationId", () => {
46
+ const id = asConversationId("conv-456");
47
+ expect(id).toBe("conv-456");
48
+ });
49
+ it("asPlanId brands a string as PlanId", () => {
50
+ const id = asPlanId("plan-789");
51
+ expect(id).toBe("plan-789");
52
+ });
53
+ it("asAllocationId brands a string as AllocationId", () => {
54
+ const id = asAllocationId("alloc-001");
55
+ expect(id).toBe("alloc-001");
56
+ });
57
+ it("asSettlementId brands a string as SettlementId", () => {
58
+ const id = asSettlementId("settle-002");
59
+ expect(id).toBe("settle-002");
60
+ });
61
+ it("asListingId brands a string as ListingId", () => {
62
+ const id = asListingId("list-003");
63
+ expect(id).toBe("list-003");
64
+ });
65
+ it("asProposalId brands a string as ProposalId", () => {
66
+ const id = asProposalId("prop-004");
67
+ expect(id).toBe("prop-004");
68
+ });
69
+ });
70
+ //# sourceMappingURL=branded-ids.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branded-ids.test.js","sourceRoot":"","sources":["../../src/__tests__/branded-ids.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,194 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { SPECIES_CONSTRAINTS, TrustMode, BatteryMode, SensitivityLevel, EventType, RelationType, } from "../index";
3
+ // ---------------------------------------------------------------------------
4
+ // SPECIES_CONSTRAINTS
5
+ // ---------------------------------------------------------------------------
6
+ describe("SPECIES_CONSTRAINTS", () => {
7
+ it("has the correct MAX_AROUSAL value", () => {
8
+ expect(SPECIES_CONSTRAINTS.MAX_AROUSAL).toBe(0.35);
9
+ });
10
+ it("has the correct SMILE_DELTA_MAX value", () => {
11
+ expect(SPECIES_CONSTRAINTS.SMILE_DELTA_MAX).toBe(0.08);
12
+ });
13
+ it("has the correct GLOW_DELTA_MAX value", () => {
14
+ expect(SPECIES_CONSTRAINTS.GLOW_DELTA_MAX).toBe(0.15);
15
+ });
16
+ it("has the correct DRIFT_VARIATION_MAX value", () => {
17
+ expect(SPECIES_CONSTRAINTS.DRIFT_VARIATION_MAX).toBe(0.1);
18
+ });
19
+ it("is frozen (immutable)", () => {
20
+ expect(Object.isFrozen(SPECIES_CONSTRAINTS)).toBe(true);
21
+ });
22
+ });
23
+ // ---------------------------------------------------------------------------
24
+ // Enums
25
+ // ---------------------------------------------------------------------------
26
+ describe("TrustMode enum", () => {
27
+ it("has expected values", () => {
28
+ expect(TrustMode.Full).toBe("full");
29
+ expect(TrustMode.Guarded).toBe("guarded");
30
+ expect(TrustMode.Minimal).toBe("minimal");
31
+ });
32
+ });
33
+ describe("BatteryMode enum", () => {
34
+ it("has expected values", () => {
35
+ expect(BatteryMode.Normal).toBe("normal");
36
+ expect(BatteryMode.LowPower).toBe("low_power");
37
+ expect(BatteryMode.Critical).toBe("critical");
38
+ });
39
+ });
40
+ describe("SensitivityLevel enum", () => {
41
+ it("has expected values", () => {
42
+ expect(SensitivityLevel.None).toBe("none");
43
+ expect(SensitivityLevel.Personal).toBe("personal");
44
+ expect(SensitivityLevel.Medical).toBe("medical");
45
+ expect(SensitivityLevel.Financial).toBe("financial");
46
+ expect(SensitivityLevel.Secret).toBe("secret");
47
+ });
48
+ });
49
+ describe("EventType enum", () => {
50
+ it("has all expected event types", () => {
51
+ expect(EventType.IdentityCreated).toBe("identity_created");
52
+ expect(EventType.StateUpdated).toBe("state_updated");
53
+ expect(EventType.MemoryFormed).toBe("memory_formed");
54
+ expect(EventType.MemoryDecayed).toBe("memory_decayed");
55
+ expect(EventType.MemoryDeleted).toBe("memory_deleted");
56
+ expect(EventType.MemoryAccessed).toBe("memory_accessed");
57
+ expect(EventType.ProviderSwapped).toBe("provider_swapped");
58
+ expect(EventType.ExportRequested).toBe("export_requested");
59
+ expect(EventType.DeleteRequested).toBe("delete_requested");
60
+ expect(EventType.SyncCompleted).toBe("sync_completed");
61
+ expect(EventType.AuditEntry).toBe("audit_entry");
62
+ });
63
+ });
64
+ describe("RelationType enum", () => {
65
+ it("has expected values", () => {
66
+ expect(RelationType.Related).toBe("related");
67
+ expect(RelationType.CausedBy).toBe("caused_by");
68
+ expect(RelationType.FollowedBy).toBe("followed_by");
69
+ expect(RelationType.ConflictsWith).toBe("conflicts_with");
70
+ expect(RelationType.Reinforces).toBe("reinforces");
71
+ expect(RelationType.PartOf).toBe("part_of");
72
+ });
73
+ });
74
+ // ---------------------------------------------------------------------------
75
+ // Type construction checks (compile-time + runtime shape validation)
76
+ // ---------------------------------------------------------------------------
77
+ describe("Type construction", () => {
78
+ it("constructs a valid MotebitIdentity", () => {
79
+ const identity = {
80
+ motebit_id: "test-id",
81
+ created_at: Date.now(),
82
+ owner_id: "owner-1",
83
+ version_clock: 0,
84
+ };
85
+ expect(identity.motebit_id).toBe("test-id");
86
+ expect(identity.version_clock).toBe(0);
87
+ });
88
+ it("constructs a valid MotebitState", () => {
89
+ const state = {
90
+ attention: 0.5,
91
+ processing: 0.3,
92
+ confidence: 0.7,
93
+ affect_valence: -0.2,
94
+ affect_arousal: 0.1,
95
+ social_distance: 0.4,
96
+ curiosity: 0.6,
97
+ trust_mode: TrustMode.Guarded,
98
+ battery_mode: BatteryMode.Normal,
99
+ };
100
+ expect(state.attention).toBe(0.5);
101
+ expect(state.trust_mode).toBe(TrustMode.Guarded);
102
+ });
103
+ it("constructs a valid BehaviorCues", () => {
104
+ const cues = {
105
+ hover_distance: 0.4,
106
+ drift_amplitude: 0.02,
107
+ glow_intensity: 0.3,
108
+ eye_dilation: 0.3,
109
+ smile_curvature: 0,
110
+ speaking_activity: 0,
111
+ };
112
+ expect(cues.hover_distance).toBe(0.4);
113
+ });
114
+ it("constructs a valid MemoryNode", () => {
115
+ const node = {
116
+ node_id: "n1",
117
+ motebit_id: "m1",
118
+ content: "hello",
119
+ embedding: [0.1, 0.2],
120
+ confidence: 0.9,
121
+ sensitivity: SensitivityLevel.None,
122
+ created_at: Date.now(),
123
+ last_accessed: Date.now(),
124
+ half_life: 7 * 24 * 60 * 60 * 1000,
125
+ tombstoned: false,
126
+ pinned: false,
127
+ };
128
+ expect(node.tombstoned).toBe(false);
129
+ });
130
+ it("constructs a valid EventLogEntry", () => {
131
+ const entry = {
132
+ event_id: "e1",
133
+ motebit_id: "m1",
134
+ timestamp: Date.now(),
135
+ event_type: EventType.StateUpdated,
136
+ payload: { key: "value" },
137
+ version_clock: 1,
138
+ tombstoned: false,
139
+ };
140
+ expect(entry.event_type).toBe(EventType.StateUpdated);
141
+ });
142
+ it("constructs a valid SyncCursor", () => {
143
+ const cursor = {
144
+ motebit_id: "m1",
145
+ last_event_id: "e1",
146
+ last_version_clock: 5,
147
+ };
148
+ expect(cursor.last_version_clock).toBe(5);
149
+ });
150
+ it("constructs a valid ConflictEdge", () => {
151
+ const localEvent = {
152
+ event_id: "e1",
153
+ motebit_id: "m1",
154
+ timestamp: 100,
155
+ event_type: EventType.StateUpdated,
156
+ payload: {},
157
+ version_clock: 1,
158
+ tombstoned: false,
159
+ };
160
+ const remoteEvent = {
161
+ event_id: "e2",
162
+ motebit_id: "m1",
163
+ timestamp: 101,
164
+ event_type: EventType.StateUpdated,
165
+ payload: {},
166
+ version_clock: 1,
167
+ tombstoned: false,
168
+ };
169
+ const conflict = {
170
+ local_event: localEvent,
171
+ remote_event: remoteEvent,
172
+ resolution: "unresolved",
173
+ };
174
+ expect(conflict.resolution).toBe("unresolved");
175
+ });
176
+ it("constructs a valid ExportManifest", () => {
177
+ const manifest = {
178
+ motebit_id: "m1",
179
+ exported_at: Date.now(),
180
+ identity: {
181
+ motebit_id: "m1",
182
+ created_at: Date.now(),
183
+ owner_id: "owner",
184
+ version_clock: 0,
185
+ },
186
+ memories: [],
187
+ edges: [],
188
+ events: [],
189
+ audit_log: [],
190
+ };
191
+ expect(manifest.memories).toHaveLength(0);
192
+ });
193
+ });
194
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=provider-mode.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-mode.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/provider-mode.test.ts"],"names":[],"mappings":""}