@ottochain/sdk 2.0.0 → 2.2.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 (142) hide show
  1. package/dist/cjs/apps/contracts/index.js +1 -1
  2. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +272 -0
  3. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +284 -0
  4. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +93 -0
  5. package/dist/cjs/apps/contracts/state-machines/index.js +177 -1
  6. package/dist/cjs/apps/corporate/state-machines/corp-board.js +1022 -0
  7. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +671 -0
  8. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +998 -0
  9. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +1102 -0
  10. package/dist/cjs/apps/corporate/state-machines/index.js +20 -4440
  11. package/dist/cjs/apps/governance/index.js +7 -7
  12. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +467 -0
  13. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +458 -0
  14. package/dist/cjs/apps/governance/state-machines/dao-single.js +199 -0
  15. package/dist/cjs/apps/governance/state-machines/dao-token.js +503 -0
  16. package/dist/cjs/apps/governance/state-machines/governance-simple.js +482 -0
  17. package/dist/cjs/apps/governance/state-machines/governance-universal.js +138 -0
  18. package/dist/cjs/apps/governance/state-machines/index.js +16 -2934
  19. package/dist/cjs/apps/identity/constants.js +28 -14
  20. package/dist/cjs/apps/identity/index.js +27 -12
  21. package/dist/cjs/apps/identity/state-machines/identity-agent.js +256 -0
  22. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +321 -0
  23. package/dist/cjs/apps/identity/state-machines/identity-universal.js +106 -0
  24. package/dist/cjs/apps/identity/state-machines/index.js +15 -784
  25. package/dist/cjs/apps/markets/index.js +1 -1
  26. package/dist/cjs/apps/markets/state-machines/index.js +14 -2298
  27. package/dist/cjs/apps/markets/state-machines/market-auction.js +283 -0
  28. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +312 -0
  29. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +407 -0
  30. package/dist/cjs/apps/markets/state-machines/market-prediction.js +485 -0
  31. package/dist/cjs/apps/markets/state-machines/market-universal.js +129 -0
  32. package/dist/cjs/apps/oracles/index.js +36 -0
  33. package/dist/cjs/generated/google/protobuf/struct.js +1 -1
  34. package/dist/cjs/generated/google/protobuf/timestamp.js +1 -1
  35. package/dist/cjs/generated/index.js +26 -22
  36. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +1 -1
  37. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  38. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +1 -1
  39. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +12 -12
  40. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +1688 -0
  41. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +1 -1
  42. package/dist/cjs/generated/ottochain/v1/common.js +1 -1
  43. package/dist/cjs/generated/ottochain/v1/fiber.js +1 -1
  44. package/dist/cjs/generated/ottochain/v1/messages.js +1 -1
  45. package/dist/cjs/generated/ottochain/v1/records.js +1 -1
  46. package/dist/cjs/schema/fiber-app.js +95 -0
  47. package/dist/cjs/schema/index.js +20 -0
  48. package/dist/esm/apps/contracts/index.js +3 -3
  49. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +269 -0
  50. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +281 -0
  51. package/dist/esm/apps/contracts/state-machines/contract-universal.js +90 -0
  52. package/dist/esm/apps/contracts/state-machines/index.js +177 -1
  53. package/dist/esm/apps/corporate/index.js +3 -3
  54. package/dist/esm/apps/corporate/state-machines/corp-board.js +1019 -0
  55. package/dist/esm/apps/corporate/state-machines/corp-entity.js +668 -0
  56. package/dist/esm/apps/corporate/state-machines/corp-securities.js +995 -0
  57. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +1099 -0
  58. package/dist/esm/apps/corporate/state-machines/index.js +15 -4439
  59. package/dist/esm/apps/governance/index.js +9 -9
  60. package/dist/esm/apps/governance/state-machines/dao-multisig.js +464 -0
  61. package/dist/esm/apps/governance/state-machines/dao-reputation.js +455 -0
  62. package/dist/esm/apps/governance/state-machines/dao-single.js +196 -0
  63. package/dist/esm/apps/governance/state-machines/dao-token.js +500 -0
  64. package/dist/esm/apps/governance/state-machines/governance-simple.js +479 -0
  65. package/dist/esm/apps/governance/state-machines/governance-universal.js +135 -0
  66. package/dist/esm/apps/governance/state-machines/index.js +9 -2933
  67. package/dist/esm/apps/identity/constants.js +28 -14
  68. package/dist/esm/apps/identity/index.js +7 -5
  69. package/dist/esm/apps/identity/state-machines/identity-agent.js +253 -0
  70. package/dist/esm/apps/identity/state-machines/identity-oracle.js +318 -0
  71. package/dist/esm/apps/identity/state-machines/identity-universal.js +103 -0
  72. package/dist/esm/apps/identity/state-machines/index.js +11 -783
  73. package/dist/esm/apps/index.js +5 -5
  74. package/dist/esm/apps/markets/index.js +3 -3
  75. package/dist/esm/apps/markets/state-machines/index.js +8 -2297
  76. package/dist/esm/apps/markets/state-machines/market-auction.js +280 -0
  77. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +309 -0
  78. package/dist/esm/apps/markets/state-machines/market-group-buy.js +404 -0
  79. package/dist/esm/apps/markets/state-machines/market-prediction.js +482 -0
  80. package/dist/esm/apps/markets/state-machines/market-universal.js +126 -0
  81. package/dist/esm/apps/oracles/index.js +21 -0
  82. package/dist/esm/generated/google/protobuf/struct.js +1 -1
  83. package/dist/esm/generated/google/protobuf/timestamp.js +1 -1
  84. package/dist/esm/generated/index.js +8 -4
  85. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +1 -1
  86. package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  87. package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +1 -1
  88. package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +2 -2
  89. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +1676 -0
  90. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +1 -1
  91. package/dist/esm/generated/ottochain/v1/common.js +1 -1
  92. package/dist/esm/generated/ottochain/v1/fiber.js +1 -1
  93. package/dist/esm/generated/ottochain/v1/messages.js +1 -1
  94. package/dist/esm/generated/ottochain/v1/records.js +1 -1
  95. package/dist/esm/schema/fiber-app.js +86 -0
  96. package/dist/esm/schema/index.js +4 -0
  97. package/dist/types/apps/contracts/index.d.ts +151 -2
  98. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +462 -0
  99. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +511 -0
  100. package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +147 -0
  101. package/dist/types/apps/contracts/state-machines/index.d.ts +149 -0
  102. package/dist/types/apps/corporate/index.d.ts +5263 -3825
  103. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +1479 -0
  104. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +970 -0
  105. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +1381 -0
  106. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +1631 -0
  107. package/dist/types/apps/corporate/state-machines/index.d.ts +5245 -3802
  108. package/dist/types/apps/governance/index.d.ts +875 -37
  109. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +644 -0
  110. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +610 -0
  111. package/dist/types/apps/governance/state-machines/dao-single.d.ts +276 -0
  112. package/dist/types/apps/governance/state-machines/dao-token.d.ts +601 -0
  113. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +652 -0
  114. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +181 -0
  115. package/dist/types/apps/governance/state-machines/index.d.ts +9 -2136
  116. package/dist/types/apps/identity/constants.d.ts +8 -6
  117. package/dist/types/apps/identity/index.d.ts +1078 -577
  118. package/dist/types/apps/identity/state-machines/identity-agent.d.ts +401 -0
  119. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +550 -0
  120. package/dist/types/apps/identity/state-machines/identity-universal.d.ts +151 -0
  121. package/dist/types/apps/identity/state-machines/index.d.ts +1069 -567
  122. package/dist/types/apps/index.d.ts +5 -5
  123. package/dist/types/apps/markets/index.d.ts +535 -7
  124. package/dist/types/apps/markets/state-machines/index.d.ts +8 -1678
  125. package/dist/types/apps/markets/state-machines/market-auction.d.ts +392 -0
  126. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +443 -0
  127. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +539 -0
  128. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +651 -0
  129. package/dist/types/apps/markets/state-machines/market-universal.d.ts +191 -0
  130. package/dist/types/apps/oracles/index.d.ts +18 -0
  131. package/dist/types/generated/index.d.ts +3 -2
  132. package/dist/types/generated/ottochain/apps/identity/v1/attestation.d.ts +1 -1
  133. package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +187 -0
  134. package/dist/types/schema/fiber-app.d.ts +172 -0
  135. package/dist/types/schema/index.d.ts +4 -0
  136. package/package.json +1 -1
  137. package/dist/cjs/generated/ottochain/apps/identity/v1/agent.js +0 -619
  138. package/dist/cjs/generated/ottochain/apps/oracles/v1/oracle.js +0 -1223
  139. package/dist/esm/generated/ottochain/apps/identity/v1/agent.js +0 -610
  140. package/dist/esm/generated/ottochain/apps/oracles/v1/oracle.js +0 -1217
  141. package/dist/types/generated/ottochain/apps/identity/v1/agent.d.ts +0 -94
  142. package/dist/types/generated/ottochain/apps/oracles/v1/oracle.d.ts +0 -150
@@ -2,31 +2,45 @@
2
2
  /**
3
3
  * Identity Constants
4
4
  *
5
- * State machine transitions and configuration constants for agent identity.
5
+ * State machine transitions and configuration constants for identity types.
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getReputationDelta = exports.canTransition = exports.ATTESTATION_DELTAS = exports.AGENT_TRANSITIONS = void 0;
11
- const agent_js_1 = require("../../generated/ottochain/apps/identity/v1/agent.js");
10
+ exports.getReputationDelta = exports.canTransition = exports.ATTESTATION_DELTAS = exports.AGENT_TRANSITIONS = exports.IDENTITY_TRANSITIONS = void 0;
11
+ const identity_js_1 = require("../../generated/ottochain/apps/identity/v1/identity.js");
12
12
  const attestation_js_1 = require("../../generated/ottochain/apps/identity/v1/attestation.js");
13
13
  // ---------------------------------------------------------------------------
14
14
  // State Machine Transitions
15
15
  // ---------------------------------------------------------------------------
16
16
  /**
17
- * Valid transitions for each agent state.
17
+ * Valid transitions for each identity state.
18
18
  * Maps current state to allowed event names.
19
+ * Note: Some transitions are type-specific (agent vs oracle)
19
20
  */
20
- exports.AGENT_TRANSITIONS = {
21
- [agent_js_1.AgentState.AGENT_STATE_UNSPECIFIED]: [],
22
- [agent_js_1.AgentState.AGENT_STATE_REGISTERED]: ['activate', 'withdraw'],
23
- [agent_js_1.AgentState.AGENT_STATE_ACTIVE]: ['challenge', 'withdraw'],
24
- [agent_js_1.AgentState.AGENT_STATE_CHALLENGED]: ['uphold_challenge', 'dismiss_challenge'],
25
- [agent_js_1.AgentState.AGENT_STATE_SUSPENDED]: ['begin_probation'],
26
- [agent_js_1.AgentState.AGENT_STATE_PROBATION]: ['complete_probation'],
27
- [agent_js_1.AgentState.AGENT_STATE_WITHDRAWN]: [], // Terminal state
28
- [agent_js_1.AgentState.UNRECOGNIZED]: [],
21
+ exports.IDENTITY_TRANSITIONS = {
22
+ [identity_js_1.IdentityState.IDENTITY_STATE_UNSPECIFIED]: [],
23
+ [identity_js_1.IdentityState.IDENTITY_STATE_UNREGISTERED]: ["register"],
24
+ [identity_js_1.IdentityState.IDENTITY_STATE_REGISTERED]: ["activate", "withdraw"],
25
+ [identity_js_1.IdentityState.IDENTITY_STATE_ACTIVE]: [
26
+ "challenge",
27
+ "slash",
28
+ "deactivate",
29
+ "withdraw",
30
+ ],
31
+ [identity_js_1.IdentityState.IDENTITY_STATE_CHALLENGED]: [
32
+ "uphold_challenge",
33
+ "dismiss_challenge",
34
+ ],
35
+ [identity_js_1.IdentityState.IDENTITY_STATE_SUSPENDED]: ["begin_probation"],
36
+ [identity_js_1.IdentityState.IDENTITY_STATE_PROBATION]: ["complete_probation"],
37
+ [identity_js_1.IdentityState.IDENTITY_STATE_SLASHED]: ["reactivate", "withdraw"],
38
+ [identity_js_1.IdentityState.IDENTITY_STATE_INACTIVE]: ["activate", "withdraw"],
39
+ [identity_js_1.IdentityState.IDENTITY_STATE_WITHDRAWN]: [], // Terminal state
40
+ [identity_js_1.IdentityState.UNRECOGNIZED]: [],
29
41
  };
42
+ // Legacy alias
43
+ exports.AGENT_TRANSITIONS = exports.IDENTITY_TRANSITIONS;
30
44
  // ---------------------------------------------------------------------------
31
45
  // Reputation Configuration
32
46
  // ---------------------------------------------------------------------------
@@ -46,7 +60,7 @@ exports.ATTESTATION_DELTAS = {
46
60
  * Check if a transition is valid for the given state.
47
61
  */
48
62
  function canTransition(state, event) {
49
- return exports.AGENT_TRANSITIONS[state]?.includes(event) ?? false;
63
+ return exports.IDENTITY_TRANSITIONS[state]?.includes(event) ?? false;
50
64
  }
51
65
  exports.canTransition = canTransition;
52
66
  /**
@@ -18,18 +18,32 @@
18
18
  * @packageDocumentation
19
19
  */
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.getIdentityDefinition = exports.IDENTITY_DEFINITIONS = exports.identityOracleDef = exports.identityAgentDef = exports.identityUniversalDef = exports.DEFAULT_REPUTATION_CONFIG = exports.getReputationDelta = exports.canTransition = exports.ATTESTATION_DELTAS = exports.AGENT_TRANSITIONS = exports.attestationTypeToJSON = exports.attestationTypeFromJSON = exports.ReputationConfig = exports.ChallengeRequest = exports.VouchRequest = exports.Attestation = exports.ReputationDelta = exports.AttestationType = exports.platformToJSON = exports.platformFromJSON = exports.agentStateToJSON = exports.agentStateFromJSON = exports.AgentIdentityDefinition = exports.AgentIdentity = exports.PlatformLink = exports.Platform = exports.AgentState = void 0;
21
+ exports.getIdentityDefinition = exports.IDENTITY_DEFINITIONS = exports.identityOracleDef = exports.identityAgentDef = exports.identityUniversalDef = exports.DEFAULT_REPUTATION_CONFIG = exports.getReputationDelta = exports.canTransition = exports.ATTESTATION_DELTAS = exports.AGENT_TRANSITIONS = exports.IDENTITY_TRANSITIONS = exports.attestationTypeToJSON = exports.attestationTypeFromJSON = exports.ReputationConfig = exports.ChallengeRequest = exports.VouchRequest = exports.Attestation = exports.ReputationDelta = exports.AttestationType = exports.AgentState = exports.platformToJSON = exports.platformFromJSON = exports.identityStateToJSON = exports.identityStateFromJSON = exports.identityTypeToJSON = exports.identityTypeFromJSON = exports.IdentityDefinition = exports.WithdrawIdentityRequest = exports.AddStakeRequest = exports.ChallengeIdentityRequest = exports.LinkPlatformRequest = exports.ActivateIdentityRequest = exports.RegisterIdentityRequest = exports.Identity = exports.PenaltyEvent = exports.Reputation = exports.PlatformLink = exports.Platform = exports.IdentityState = exports.IdentityType = void 0;
22
22
  // Re-export generated protobuf types (source of truth)
23
- var agent_js_1 = require("../../generated/ottochain/apps/identity/v1/agent.js");
24
- Object.defineProperty(exports, "AgentState", { enumerable: true, get: function () { return agent_js_1.AgentState; } });
25
- Object.defineProperty(exports, "Platform", { enumerable: true, get: function () { return agent_js_1.Platform; } });
26
- Object.defineProperty(exports, "PlatformLink", { enumerable: true, get: function () { return agent_js_1.PlatformLink; } });
27
- Object.defineProperty(exports, "AgentIdentity", { enumerable: true, get: function () { return agent_js_1.AgentIdentity; } });
28
- Object.defineProperty(exports, "AgentIdentityDefinition", { enumerable: true, get: function () { return agent_js_1.AgentIdentityDefinition; } });
29
- Object.defineProperty(exports, "agentStateFromJSON", { enumerable: true, get: function () { return agent_js_1.agentStateFromJSON; } });
30
- Object.defineProperty(exports, "agentStateToJSON", { enumerable: true, get: function () { return agent_js_1.agentStateToJSON; } });
31
- Object.defineProperty(exports, "platformFromJSON", { enumerable: true, get: function () { return agent_js_1.platformFromJSON; } });
32
- Object.defineProperty(exports, "platformToJSON", { enumerable: true, get: function () { return agent_js_1.platformToJSON; } });
23
+ var identity_js_1 = require("../../generated/ottochain/apps/identity/v1/identity.js");
24
+ Object.defineProperty(exports, "IdentityType", { enumerable: true, get: function () { return identity_js_1.IdentityType; } });
25
+ Object.defineProperty(exports, "IdentityState", { enumerable: true, get: function () { return identity_js_1.IdentityState; } });
26
+ Object.defineProperty(exports, "Platform", { enumerable: true, get: function () { return identity_js_1.Platform; } });
27
+ Object.defineProperty(exports, "PlatformLink", { enumerable: true, get: function () { return identity_js_1.PlatformLink; } });
28
+ Object.defineProperty(exports, "Reputation", { enumerable: true, get: function () { return identity_js_1.Reputation; } });
29
+ Object.defineProperty(exports, "PenaltyEvent", { enumerable: true, get: function () { return identity_js_1.PenaltyEvent; } });
30
+ Object.defineProperty(exports, "Identity", { enumerable: true, get: function () { return identity_js_1.Identity; } });
31
+ Object.defineProperty(exports, "RegisterIdentityRequest", { enumerable: true, get: function () { return identity_js_1.RegisterIdentityRequest; } });
32
+ Object.defineProperty(exports, "ActivateIdentityRequest", { enumerable: true, get: function () { return identity_js_1.ActivateIdentityRequest; } });
33
+ Object.defineProperty(exports, "LinkPlatformRequest", { enumerable: true, get: function () { return identity_js_1.LinkPlatformRequest; } });
34
+ Object.defineProperty(exports, "ChallengeIdentityRequest", { enumerable: true, get: function () { return identity_js_1.ChallengeIdentityRequest; } });
35
+ Object.defineProperty(exports, "AddStakeRequest", { enumerable: true, get: function () { return identity_js_1.AddStakeRequest; } });
36
+ Object.defineProperty(exports, "WithdrawIdentityRequest", { enumerable: true, get: function () { return identity_js_1.WithdrawIdentityRequest; } });
37
+ Object.defineProperty(exports, "IdentityDefinition", { enumerable: true, get: function () { return identity_js_1.IdentityDefinition; } });
38
+ Object.defineProperty(exports, "identityTypeFromJSON", { enumerable: true, get: function () { return identity_js_1.identityTypeFromJSON; } });
39
+ Object.defineProperty(exports, "identityTypeToJSON", { enumerable: true, get: function () { return identity_js_1.identityTypeToJSON; } });
40
+ Object.defineProperty(exports, "identityStateFromJSON", { enumerable: true, get: function () { return identity_js_1.identityStateFromJSON; } });
41
+ Object.defineProperty(exports, "identityStateToJSON", { enumerable: true, get: function () { return identity_js_1.identityStateToJSON; } });
42
+ Object.defineProperty(exports, "platformFromJSON", { enumerable: true, get: function () { return identity_js_1.platformFromJSON; } });
43
+ Object.defineProperty(exports, "platformToJSON", { enumerable: true, get: function () { return identity_js_1.platformToJSON; } });
44
+ // Legacy aliases for backward compatibility
45
+ var identity_js_2 = require("../../generated/ottochain/apps/identity/v1/identity.js");
46
+ Object.defineProperty(exports, "AgentState", { enumerable: true, get: function () { return identity_js_2.IdentityState; } });
33
47
  var attestation_js_1 = require("../../generated/ottochain/apps/identity/v1/attestation.js");
34
48
  Object.defineProperty(exports, "AttestationType", { enumerable: true, get: function () { return attestation_js_1.AttestationType; } });
35
49
  Object.defineProperty(exports, "ReputationDelta", { enumerable: true, get: function () { return attestation_js_1.ReputationDelta; } });
@@ -41,6 +55,7 @@ Object.defineProperty(exports, "attestationTypeFromJSON", { enumerable: true, ge
41
55
  Object.defineProperty(exports, "attestationTypeToJSON", { enumerable: true, get: function () { return attestation_js_1.attestationTypeToJSON; } });
42
56
  // Re-export constants and utilities
43
57
  var constants_js_1 = require("./constants.js");
58
+ Object.defineProperty(exports, "IDENTITY_TRANSITIONS", { enumerable: true, get: function () { return constants_js_1.IDENTITY_TRANSITIONS; } });
44
59
  Object.defineProperty(exports, "AGENT_TRANSITIONS", { enumerable: true, get: function () { return constants_js_1.AGENT_TRANSITIONS; } });
45
60
  Object.defineProperty(exports, "ATTESTATION_DELTAS", { enumerable: true, get: function () { return constants_js_1.ATTESTATION_DELTAS; } });
46
61
  Object.defineProperty(exports, "canTransition", { enumerable: true, get: function () { return constants_js_1.canTransition; } });
@@ -77,7 +92,7 @@ exports.IDENTITY_DEFINITIONS = {
77
92
  * Get an identity state machine definition by type.
78
93
  * @param type - 'universal' | 'agent' | 'oracle' (default: 'agent')
79
94
  */
80
- function getIdentityDefinition(type = 'agent') {
95
+ function getIdentityDefinition(type = "agent") {
81
96
  return exports.IDENTITY_DEFINITIONS[type];
82
97
  }
83
98
  exports.getIdentityDefinition = getIdentityDefinition;
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.identityAgentDef = void 0;
4
+ const fiber_app_js_1 = require("../../../schema/fiber-app.js");
5
+ /**
6
+ * Standard agent identity with reputation tracking, vouching, and lifecycle management.
7
+ */
8
+ exports.identityAgentDef = (0, fiber_app_js_1.defineFiberApp)({
9
+ metadata: {
10
+ name: "IdentityAgent",
11
+ app: "identity",
12
+ type: "agent",
13
+ version: "1.0.0",
14
+ description: "Standard agent identity with reputation tracking, vouching, and lifecycle management",
15
+ },
16
+ createSchema: {
17
+ required: ["owner", "displayName"],
18
+ properties: {
19
+ owner: {
20
+ type: "address",
21
+ description: "Agent owner DAG address",
22
+ immutable: true,
23
+ },
24
+ displayName: {
25
+ type: "string",
26
+ maxLength: 64,
27
+ description: "Human-readable agent name",
28
+ },
29
+ bio: {
30
+ type: "string",
31
+ maxLength: 256,
32
+ default: "",
33
+ },
34
+ avatar: {
35
+ type: "uri",
36
+ default: null,
37
+ },
38
+ platforms: {
39
+ type: "array",
40
+ items: { $ref: "#/definitions/PlatformLink" },
41
+ default: [],
42
+ },
43
+ },
44
+ },
45
+ stateSchema: {
46
+ properties: {
47
+ owner: { type: "address", immutable: true },
48
+ displayName: { type: "string" },
49
+ bio: { type: "string" },
50
+ avatar: { type: "uri" },
51
+ platforms: {
52
+ type: "array",
53
+ items: { $ref: "#/definitions/PlatformLink" },
54
+ },
55
+ status: {
56
+ type: "string",
57
+ enum: [
58
+ "REGISTERED",
59
+ "ACTIVE",
60
+ "CHALLENGED",
61
+ "SUSPENDED",
62
+ "PROBATION",
63
+ "WITHDRAWN",
64
+ ],
65
+ computed: true,
66
+ },
67
+ reputation: { type: "integer", default: 10, computed: true },
68
+ activatedAt: { type: "timestamp", computed: true },
69
+ suspendedAt: { type: "timestamp", computed: true },
70
+ probationStartedAt: { type: "timestamp", computed: true },
71
+ challengedBy: { type: "address", computed: true },
72
+ },
73
+ },
74
+ eventSchemas: {
75
+ activate: {
76
+ description: "Activate a registered agent",
77
+ },
78
+ receive_vouch: {
79
+ description: "Receive a vouch from another agent",
80
+ required: ["from"],
81
+ properties: {
82
+ from: { type: "address", description: "Address of vouching agent" },
83
+ weight: { type: "integer", minimum: 1, maximum: 10, default: 1 },
84
+ },
85
+ },
86
+ receive_completion: {
87
+ description: "Receive completion attestation from a fiber",
88
+ },
89
+ challenge: {
90
+ description: "Challenge an active agent's behavior",
91
+ required: ["challenger", "reason"],
92
+ properties: {
93
+ challenger: { type: "address" },
94
+ reason: { type: "string", maxLength: 512 },
95
+ evidence: { type: "array", items: { type: "uri" } },
96
+ },
97
+ },
98
+ dismiss_challenge: {
99
+ description: "Dismiss an active challenge",
100
+ },
101
+ uphold_challenge: {
102
+ description: "Uphold a challenge, suspending the agent",
103
+ },
104
+ begin_probation: {
105
+ description: "Move suspended agent to probation",
106
+ },
107
+ complete_probation: {
108
+ description: "Complete probation, reactivating the agent",
109
+ },
110
+ withdraw: {
111
+ description: "Permanently withdraw the agent",
112
+ },
113
+ },
114
+ definitions: {
115
+ PlatformLink: {
116
+ type: "object",
117
+ required: ["platform", "handle"],
118
+ properties: {
119
+ platform: {
120
+ type: "string",
121
+ enum: [
122
+ "twitter",
123
+ "github",
124
+ "discord",
125
+ "telegram",
126
+ "moltbook",
127
+ ],
128
+ },
129
+ handle: { type: "string" },
130
+ verified: { type: "boolean", default: false },
131
+ },
132
+ },
133
+ },
134
+ states: {
135
+ REGISTERED: { id: "REGISTERED", isFinal: false },
136
+ ACTIVE: { id: "ACTIVE", isFinal: false },
137
+ CHALLENGED: { id: "CHALLENGED", isFinal: false },
138
+ SUSPENDED: { id: "SUSPENDED", isFinal: false },
139
+ PROBATION: { id: "PROBATION", isFinal: false },
140
+ WITHDRAWN: { id: "WITHDRAWN", isFinal: true },
141
+ },
142
+ initialState: "REGISTERED",
143
+ transitions: [
144
+ {
145
+ from: "REGISTERED",
146
+ to: "ACTIVE",
147
+ eventName: "activate",
148
+ guard: { "==": [1, 1] },
149
+ effect: {
150
+ merge: [
151
+ { var: "state" },
152
+ { status: "ACTIVE", activatedAt: { var: "$timestamp" } },
153
+ ],
154
+ },
155
+ },
156
+ {
157
+ from: "ACTIVE",
158
+ to: "ACTIVE",
159
+ eventName: "receive_vouch",
160
+ guard: { "!!": [{ var: "event.from" }] },
161
+ effect: {
162
+ merge: [
163
+ { var: "state" },
164
+ { reputation: { "+": [{ var: "state.reputation" }, 2] } },
165
+ ],
166
+ },
167
+ },
168
+ {
169
+ from: "ACTIVE",
170
+ to: "ACTIVE",
171
+ eventName: "receive_completion",
172
+ guard: { "==": [1, 1] },
173
+ effect: {
174
+ merge: [
175
+ { var: "state" },
176
+ { reputation: { "+": [{ var: "state.reputation" }, 5] } },
177
+ ],
178
+ },
179
+ },
180
+ {
181
+ from: "ACTIVE",
182
+ to: "CHALLENGED",
183
+ eventName: "challenge",
184
+ guard: { "!!": [{ var: "event.challenger" }] },
185
+ effect: {
186
+ merge: [
187
+ { var: "state" },
188
+ { status: "CHALLENGED", challengedBy: { var: "event.challenger" } },
189
+ ],
190
+ },
191
+ },
192
+ {
193
+ from: "CHALLENGED",
194
+ to: "ACTIVE",
195
+ eventName: "dismiss_challenge",
196
+ guard: { "==": [1, 1] },
197
+ effect: {
198
+ merge: [{ var: "state" }, { status: "ACTIVE", challengedBy: null }],
199
+ },
200
+ },
201
+ {
202
+ from: "CHALLENGED",
203
+ to: "SUSPENDED",
204
+ eventName: "uphold_challenge",
205
+ guard: { "==": [1, 1] },
206
+ effect: {
207
+ merge: [
208
+ { var: "state" },
209
+ { status: "SUSPENDED", suspendedAt: { var: "$timestamp" } },
210
+ ],
211
+ },
212
+ },
213
+ {
214
+ from: "SUSPENDED",
215
+ to: "PROBATION",
216
+ eventName: "begin_probation",
217
+ guard: { "==": [1, 1] },
218
+ effect: {
219
+ merge: [
220
+ { var: "state" },
221
+ { status: "PROBATION", probationStartedAt: { var: "$timestamp" } },
222
+ ],
223
+ },
224
+ },
225
+ {
226
+ from: "PROBATION",
227
+ to: "ACTIVE",
228
+ eventName: "complete_probation",
229
+ guard: { "==": [1, 1] },
230
+ effect: {
231
+ merge: [
232
+ { var: "state" },
233
+ { status: "ACTIVE", probationStartedAt: null },
234
+ ],
235
+ },
236
+ },
237
+ {
238
+ from: "ACTIVE",
239
+ to: "WITHDRAWN",
240
+ eventName: "withdraw",
241
+ guard: { "==": [1, 1] },
242
+ effect: {
243
+ merge: [{ var: "state" }, { status: "WITHDRAWN" }],
244
+ },
245
+ },
246
+ {
247
+ from: "REGISTERED",
248
+ to: "WITHDRAWN",
249
+ eventName: "withdraw",
250
+ guard: { "==": [1, 1] },
251
+ effect: {
252
+ merge: [{ var: "state" }, { status: "WITHDRAWN" }],
253
+ },
254
+ },
255
+ ],
256
+ });