@yigemo/choosefire 0.3.0 → 0.4.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 CHANGED
@@ -63,6 +63,11 @@ choosefire wealth account-show --account-id <uuid> --json
63
63
  choosefire wealth holding-create --command-id <uuid> --holding-id <uuid> --account-id <uuid> --name "Global Equity ETF" --currency CNY --expected-workspace-version <n> --idempotency-key <key> [--instrument-ref ETF-EXAMPLE-001] [--quantity 12.5 --quantity-as-of <iso>] --json
64
64
  choosefire wealth holding-update --command-id <uuid> --holding-id <uuid> --name "Global Equity ETF" --currency CNY --expected-object-revision <n> --expected-workspace-version <n> --idempotency-key <key> [--quantity 13.5 --quantity-as-of <iso>] --json
65
65
  choosefire wealth holding-archive --command-id <uuid> --holding-id <uuid> --reason "Position closed" --expected-object-revision <n> --expected-workspace-version <n> --idempotency-key <key> --json
66
+ choosefire transaction cash-flow --cash-flow-id <uuid> --account-id <uuid> --direction in --amount 2500 --currency CNY --occurred-at <iso> --expected-workspace-version <n> --idempotency-key <key> --json
67
+ choosefire transaction create --transaction-id <uuid> --account-id <uuid> --holding-id <uuid> --type buy --amount 1000 --currency CNY --quantity 10 --price 100 --trade-at <iso> --expected-workspace-version <n> --idempotency-key <key> --json
68
+ choosefire transaction update --transaction-id <uuid> --account-id <uuid> --holding-id <uuid> --type buy --amount 1100 --currency CNY --quantity 10 --price 110 --trade-at <iso> --expected-object-revision <n> --expected-workspace-version <n> --idempotency-key <key> --json
69
+ choosefire transaction archive --transaction-id <uuid> --reason "Duplicate import" --expected-object-revision <n> --expected-workspace-version <n> --idempotency-key <key> --json
70
+ choosefire transaction timeline --account-id <uuid> [--holding-id <uuid>] --json
66
71
  choosefire plan list --json
67
72
  choosefire plan get <plan-id> --json
68
73
  choosefire plan update-inputs <plan-id> --annual-return 0.035 --annual-inflation 0.04 --expected-updated-at <iso> --dry-run --json
@@ -74,7 +79,7 @@ choosefire asset remove --plan <plan-id> --account-id asset-bank --reason "dupli
74
79
  choosefire visual dataset --plan <plan-id> --kind overview --json
75
80
  ```
76
81
 
77
- The `workspace`, `household`, and `wealth` operations use the workspace bearer only, validate every request and response against the checked-in contract, never retry mutations, and never fall back to the legacy token or local files. Workspace and family-wealth v2 are enabled by default now that the production capability is public; set `CHOOSEFIRE_ACCOUNT_WORKSPACE_ENABLED=false` or `CHOOSEFIRE_FAMILY_WEALTH_V2_ENABLED=false` for an explicit rollback/compatibility run. Holding commands are available only for detailed accounts. `--quantity` and `--quantity-as-of` must be supplied together so scripts and audit replays remain deterministic. Give every wealth mutation an explicit `--command-id`; when an outcome is unknown, first read the latest projection and then explicitly retry the exact serialized body with the original command ID and idempotency key to recover the receipt-first outcome. Never generate a new ID or key for that recovery attempt. The JSON error includes this exact recovery material and action.
82
+ The `workspace`, `household`, `wealth`, and `transaction` operations use the workspace bearer only, validate every request and response against the checked-in contract, never retry mutations, and never fall back to the legacy token or local files. Workspace and family-wealth v2 are enabled by default now that the production capability is public; set `CHOOSEFIRE_ACCOUNT_WORKSPACE_ENABLED=false` or `CHOOSEFIRE_FAMILY_WEALTH_V2_ENABLED=false` for an explicit rollback/compatibility run. Holding and investment transaction commands are available only for detailed accounts. Buy, sell, subscribe, and redeem require a holding, quantity, and price; deposits and withdrawals remain external cash flows. Give every mutation an explicit `--command-id`; when an outcome is unknown, first read the latest projection and then explicitly retry the exact serialized body with the original command ID and idempotency key to recover the receipt-first outcome. Never generate a new ID or key for that recovery attempt. The JSON error includes this exact recovery material and action.
78
83
 
79
84
  Existing legacy plan write commands still default to dry-run unless `--apply` is passed. For CLI and MCP sources, `--expected-updated-at` should be provided to avoid overwriting newer data.
80
85
 
@@ -178,18 +178,18 @@
178
178
  "webPath": "/app/assets/:id"
179
179
  },
180
180
  {
181
- "builtinAi": "apply_with_confirmation",
181
+ "builtinAi": "unavailable",
182
182
  "capabilityId": "transaction.record",
183
- "cliPath": "transaction record",
184
- "commandOrQuery": "transaction.record.v2",
183
+ "cliPath": "transaction create|update|archive|timeline",
184
+ "commandOrQuery": "investment_transaction.create|update|archive.v2 + account.activity_timeline.v2",
185
185
  "fixtureIds": [
186
186
  "CFW-FIX-003"
187
187
  ],
188
- "mcpSurface": "choosefire.transaction.record",
188
+ "mcpSurface": "unavailable (R3 MCP is read-only)",
189
189
  "milestone": "R3",
190
190
  "requiredRole": "owner",
191
191
  "riskLevel": "L1",
192
- "status": "absent",
192
+ "status": "web",
193
193
  "storyIds": [
194
194
  "CAPTURE-01",
195
195
  "TRACK-01"
@@ -1,10 +1,10 @@
1
1
  {
2
- "aggregateSha256": "6674c1519f2c624417763c6a04b272ed192d80808bb6a066d1c996506bd0b386",
2
+ "aggregateSha256": "c93e376036957ca8a7b57af66d71539fb9aeb351b453d1ed7b7b28c4b39cb2ff",
3
3
  "artifacts": [
4
4
  {
5
- "bytes": 12295,
5
+ "bytes": 12365,
6
6
  "path": "capability-matrix.v1.json",
7
- "sha256": "81031a02b50c7d03ed6d35757886c343e5abb487330b828e011bc74d93ea0e59"
7
+ "sha256": "1fad812434d8a95edb1643125586ea3bbd2f0834c5c3925096ac33792b07579c"
8
8
  },
9
9
  {
10
10
  "bytes": 1974,
@@ -32,14 +32,14 @@
32
32
  "sha256": "a956ab303c2b35720c8328649170a8e0c18ea37a36d98614b46adfc56f5c51cc"
33
33
  },
34
34
  {
35
- "bytes": 93734,
35
+ "bytes": 115365,
36
36
  "path": "openapi.generated.json",
37
- "sha256": "e5f7896c6c056e2ef96a86a9dbf30d23ed32409f25d0ae05ba3de4cf5c242232"
37
+ "sha256": "69be924ee8f365f301372dae617c33c38585b2a6ddaf194ea7c55aa254b5c64d"
38
38
  },
39
39
  {
40
- "bytes": 68643,
40
+ "bytes": 81952,
41
41
  "path": "runtime-schemas/family-wealth.v2.schema.json",
42
- "sha256": "c40b4d8ed3c13097c9fffae9260f03ecb93393a3f4db8ba6f4bf58a74fee817e"
42
+ "sha256": "f8c9da648a4f266fe747ed98a10699c455a6e1e61431a54d3fa876b068665331"
43
43
  },
44
44
  {
45
45
  "bytes": 700,