kira-wallet 0.1.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 (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +116 -0
  3. package/THIRD_PARTY_NOTICES.md +13 -0
  4. package/bin/kira.cjs +8 -0
  5. package/curve_pricing.py +86 -0
  6. package/docs/AGENT_TOOLS.md +53 -0
  7. package/docs/CLI.md +144 -0
  8. package/docs/JOB_CONTRACT.md +111 -0
  9. package/docs/KIRA_JOBS_BUILD_REPORT.md +92 -0
  10. package/docs/KIRA_REDESIGN_REPORT.md +125 -0
  11. package/docs/ONBOARDING_CHAT_CONTRACT.md +36 -0
  12. package/docs/RELEASE.md +45 -0
  13. package/docs/WALLET_CAPABILITIES.md +98 -0
  14. package/docs/character/brand-generation.json +20 -0
  15. package/docs/character/workspace-generation.json +29 -0
  16. package/docs/screenshots/kira-jobs-desktop.jpg +0 -0
  17. package/kira_agent.py +280 -0
  18. package/kira_cli.py +263 -0
  19. package/kira_config.py +98 -0
  20. package/kira_jobs.py +504 -0
  21. package/kira_tools.py +104 -0
  22. package/networks.json +214 -0
  23. package/onchain.cjs +34 -0
  24. package/package.json +78 -0
  25. package/pipeline-onchain.cjs +284 -0
  26. package/research.py +39 -0
  27. package/sources/job-envelope-v1.schema.json +469 -0
  28. package/sources/job-request-v1.schema.json +352 -0
  29. package/sources/mintclub-bond-abi.json +1457 -0
  30. package/sources/rpc-candidates.json +294 -0
  31. package/sources/uniswap-deployments.json +18261 -0
  32. package/viewer/README.md +119 -0
  33. package/viewer/chain_images.py +21 -0
  34. package/viewer/details.py +119 -0
  35. package/viewer/model.py +216 -0
  36. package/viewer/refresh-curve-prices.cjs +35 -0
  37. package/viewer/refresh_prices.py +97 -0
  38. package/viewer/server.py +153 -0
  39. package/viewer/static/agent.css +100 -0
  40. package/viewer/static/agent.js +203 -0
  41. package/viewer/static/app.js +252 -0
  42. package/viewer/static/favicon.svg +1 -0
  43. package/viewer/static/index.html +139 -0
  44. package/viewer/static/jobs.js +113 -0
  45. package/viewer/static/kira-attention.png +0 -0
  46. package/viewer/static/kira-explain.png +0 -0
  47. package/viewer/static/kira-logo.png +0 -0
  48. package/viewer/static/kira-research.png +0 -0
  49. package/viewer/static/kira-review.png +0 -0
  50. package/viewer/static/kira.png +0 -0
  51. package/viewer/static/style.css +51 -0
  52. package/viewer/static/watching-model.js +129 -0
  53. package/viewer/static/watching.js +167 -0
  54. package/viewer/static/workspace-model.js +43 -0
  55. package/viewer/static/workspace.css +463 -0
  56. package/viewer/static/workspace.js +102 -0
  57. package/viewer/token_images.py +137 -0
  58. package/wallet.py +389 -0
@@ -0,0 +1,125 @@
1
+ # Kira workspace redesign
2
+
3
+ Development build 0.1.0-dev.3, 2026-10-04.
4
+
5
+ ## Result and design concept
6
+
7
+ The prior dashboard hid research interaction below the portfolio. The new
8
+ workspace makes Kira a persistent research partner beside the recorded evidence.
9
+ Ink navigation, warm paper, restrained lavender and editorial scene captions
10
+ give the character a coherent setting. Kira changes pose with the task instead
11
+ of remaining a decorative image on every screen.
12
+
13
+ Lazyweb product evidence informed the separated navigation, persistent partner
14
+ panel and distinct activity history. Reviewed patterns included Intercom's
15
+ dashboard hierarchy, OpenAI's logs tabs and sigmamind's analytics/activity views.
16
+ These references guided layout decisions; no reference screenshots or third-party
17
+ UI assets are redistributed.
18
+
19
+ Four new transparent illustrations extend the existing original Kira identity:
20
+ researching, explaining, reviewing and checking incomplete evidence. The
21
+ existing notebook portrait remains the welcome state. Character provenance and
22
+ exact generation prompts are in [workspace-generation.json](character/workspace-generation.json).
23
+
24
+ ![Synthetic desktop workspace](screenshots/kira-redesign-desktop.jpg)
25
+
26
+ ## Delivered behavior
27
+
28
+ - The brand returns Home. There is no duplicate sidebar Home button.
29
+ - Overview, All tokens and Activity have distinct tabs. Wallet selection stays
30
+ in the sidebar; add/settings controls stay together; wallet-specific actions
31
+ stay above the selected wallet.
32
+ - Kira's deterministic briefing, evidence shortcuts and conversation draft sit
33
+ in the main section. Mobile has a direct Portfolio/Kira switch. Drafts stay
34
+ in that browser's local storage. Sending stays disabled until the account
35
+ route and portfolio disclosure scope are approved and implemented.
36
+ - All tokens reuses recorded chain-plus-contract aggregates. It provides
37
+ search, network/pricing filters, sorting, explicit testnet inclusion and
38
+ 50-row pagination. Unpriced and partly unpriced assets stay visible as unknown.
39
+ The catalog does not contact providers.
40
+ - Active work has a compact strip linked to Activity. Full job history has
41
+ status filters, 20-row pagination, recorded stages and existing stop/resume
42
+ controls. Queued, running, completed, partial, interrupted, failed and stopped
43
+ states have distinct labels. Cancellation requests say Stopping until the
44
+ engine records an outcome.
45
+ - New attempts record optional `started_at`. Timers show actual elapsed time
46
+ for these attempts and stop on terminal updates. Old jobs say Since request.
47
+ Queued jobs show their latest waiting interval. Missing timestamps say Unknown.
48
+ After a minute without a stage update, the UI states that it is awaiting an
49
+ update. A disconnected API shows the last recorded state and stops its spinner.
50
+ Neither condition fabricates completion or failure.
51
+ - Synthetic demo sessions also reject resuming a saved provider research job.
52
+ Names/settings jobs and existing same-origin session protections remain intact.
53
+
54
+ ## Verification
55
+
56
+ Verification uses synthetic data. `npm test` passed 66 Python tests, Node cache
57
+ and outage checks, catalog/lifecycle checks and browser-source syntax. The suite covers the engine, local
58
+ HTTP controls, cache/outage behavior and browser-source syntax. Catalog checks
59
+ use 5,002 tokens and cover bounded pages, identity, unknown/partial prices,
60
+ testnets, ordering and unchanged source evidence. Lifecycle checks cover all
61
+ states, quiet stages, disconnection, cancellation and current-attempt timing.
62
+
63
+ Browser checks exercised a 122-token synthetic portfolio with 121 mainnet tokens:
64
+ 50-row paging, search, unpriced filtering, token/network navigation, brand Home,
65
+ wallet selection, saved analyses, settings, keyboard dismissal/focus return,
66
+ local draft persistence and a real local names job completing through the worker.
67
+ All seven job states were inspected using private fixtures, then removed before
68
+ submitting a control action. No provider research ran during browser validation.
69
+ Desktop 1280x720 and mobile 375x812/320x700 layouts had no document overflow;
70
+ the Kira composer remained visible. Browser warnings/errors were empty.
71
+
72
+ The clean install check passed with 51 archive members. It packs and installs in an isolated directory, serves all
73
+ new assets, verifies private paths remain unavailable and executes only a
74
+ synthetic names job. Verification results are recorded in the PR.
75
+
76
+ Only the existing viewer was restarted for the operator portfolio. The
77
+ projection was byte-identical across restart, and all 682 baseline private
78
+ runtime files retained their hashes. Existing controls stayed enabled. No
79
+ operator names, holdings, snapshots, credentials or research jobs were edited.
80
+
81
+ ![Synthetic activity](screenshots/kira-redesign-activity.jpg)
82
+
83
+ ## Publication and rollback
84
+
85
+ Public code, comments and documentation use synthetic examples. A public-history
86
+ check excludes runtime files, known operator portfolio identifiers, personal
87
+ paths, loaded secrets and credential patterns. Images also received a visual
88
+ privacy check. Public commits use a GitHub noreply identity. Private local
89
+ history and session handoffs are not pushed.
90
+
91
+ The `kira-workspace-v1` tag preserves the previous UI with a clean public
92
+ foundation history. To restore just that interface while keeping the current
93
+ backwards-compatible server and job timing support:
94
+
95
+ ```sh
96
+ git restore --source=kira-workspace-v1 -- viewer/static/index.html viewer/static/app.js viewer/static/jobs.js viewer/static/style.css
97
+ ```
98
+
99
+ Reload the browser. This changes tracked UI source only. Runtime portfolio
100
+ files are outside that command. Restore those UI files from the redesign branch
101
+ to return to this edition. The original pre-redesign branch also remains local.
102
+
103
+ ## Limits and next work
104
+
105
+ Pagination bounds the catalog DOM and image work. The existing API still loads
106
+ the full recorded projection, and client filtering/sorting scans that catalog.
107
+ The 5,002-token test establishes behavior, not a performance guarantee for
108
+ arbitrary portfolios. Tens of thousands of positions would warrant server
109
+ pagination/indexing and a separate measured change.
110
+
111
+ Activity reflects durable job evidence, not a worker heartbeat. A long silent
112
+ stage can remain running; the UI makes that uncertainty explicit. Recovery is
113
+ an engine decision. No stale operator job was altered during redesign.
114
+
115
+ Connected model chat remains behind the existing account/session and disclosure
116
+ gates. Watching wallet connection is the agreed next capability direction.
117
+ Transfers, swaps and OWS Managed wallets require separate design and verification;
118
+ see [wallet capability direction](WALLET_CAPABILITIES.md). No connection, signing,
119
+ wallet creation or trading capability ships in this change.
120
+
121
+ The follow-up [review and visual refinement](KIRA_REFINEMENT_REVIEW.md) records
122
+ the inherited-head review, corrections and updated synthetic browser evidence.
123
+
124
+ This build needs independent review before merge or release. No production
125
+ deployment, registry publication or npm publication is part of this work.
@@ -0,0 +1,36 @@
1
+ # Native CLI onboarding and conversation
2
+
3
+ Kira connects the user's installed, unmodified Codex or Claude Code CLI. It does not collect account passwords, copy authentication, run an OAuth proxy, or add a hosted portfolio service. Installation and login happen through the vendor's CLI. A generic response test verifies the selected model before setup is saved. Subscription access and limits remain the vendor's responsibility.
4
+
5
+ The setup flow separates account readiness, model choice, context permission, and confirmation. The conversation composer remains visible. It shows the connected CLI, automatic context scope, response state, cancellation, and a new conversation action. Enter sends; Shift+Enter adds a line; composition events never send.
6
+
7
+ Automatic context is none, one explicitly selected registered wallet, or the whole recorded portfolio. An allowlisted projection preserves exact balances, contract and chain identities, timestamps, unknown values, and coverage gaps. It excludes credentials, RPC endpoints, paths, raw errors, jobs, and provider payloads. User-entered text is also sent to the selected provider. Scope, wallet, provider, or model changes start a new conversation and never replay old messages. Only a bounded current conversation is replayed.
8
+
9
+ Kira uses fixed executable argv, stdin for prompts, a private empty working directory, bounded output, a timeout, and process-group cancellation. Codex ignores user config and rules, uses read-only sandboxing and ephemeral sessions, and disables shell, apps, browser, computer, image, multi-agent, hooks, memories, goals and skill discovery features. The supported Codex adapter is gated to the verified 0.158 series. A local synthetic Responses fixture verified the outgoing catalog has no shell, file, network, MCP, app, or skill tools. Claude Code 2.1.259 through 2.1.x uses restricted and safe modes, no built-in tools, empty strict MCP configuration, no Chrome, no permission prompts and no session persistence. Unsupported versions fail closed.
10
+
11
+ Native CLI and administrator policy are a separate trust boundary. These settings are invocation controls, not an OS container. Claude managed policy can still apply. Setup requires explicit acknowledgement of the native CLI trust boundary. Kira-local retention controls Kira's conversation files only; vendor and managed CLI data policies are separate. History-off conversations stay in memory and the browser draft is not persisted. Previous saved conversations are preserved but never automatically attached to a new scope.
12
+
13
+ Chat cannot sign, trade, run arbitrary commands, change settings, or automatically start research. Research remains in the existing explicit controls and protected durable job API. Responses and token metadata are untrusted text, rendered without HTML interpretation.
14
+
15
+ All agent and chat endpoints require the existing same-origin local session, with bounded requests. Conversation jobs are separate from research jobs. Idempotent requests prevent duplicate sends. Cancellation, reset and configuration changes invalidate late responses. Tests cover disclosure projections, scope history isolation, retention, cancellation races, bounded output, unsupported CLIs, failures, duplicate sends and origin/session protection.
16
+
17
+ Design evidence: [Lazyweb onboarding and AI conversation references](https://www.lazyweb.com/agentic-search/593c1118-8ec0-46bf-a608-4b100271930e). Granola informs separate permissions and readiness; Raycast informs compact model choice; Copilot informs the composer surface and aligned controls. Kira uses its own typography, artwork and component system.
18
+
19
+ ## Verification evidence
20
+
21
+ `npm test` passes 83 Python tests, 31 Watching/chat UI and model cases, the
22
+ RPC outage checks and the 5,002-token catalog fixture. Clean installation covers
23
+ 58 package members. Screenshots use a synthetic portfolio and fake model runner;
24
+ they are visual evidence, not live provider acceptance. Desktop, short desktop
25
+ and 390-pixel mobile views were checked in Chrome. Both supported native CLIs
26
+ also completed a separate generic response check without wallet context.
27
+
28
+ - [Conversation desktop](screenshots/kira-chat-desktop.png)
29
+ - [Conversation mobile](screenshots/kira-chat-mobile.png)
30
+ - [Account setup](screenshots/kira-onboarding-account.png)
31
+ - [Permissions](screenshots/kira-onboarding-permissions.png)
32
+
33
+ Private live read-only acceptance completed with recorded coverage gaps. Same-address
34
+ aliases retain one canonical wallet and one published research run. Repeating the
35
+ original request reuses its job. Portfolio identifiers and raw acceptance evidence
36
+ stay outside Git and are not included in public reports.
@@ -0,0 +1,45 @@
1
+ # First release
2
+
3
+ The public source includes the workspace, Watching connection, native CLI setup
4
+ and chat. npm registry publication remains operator-only. No publish command is
5
+ run by the coding agent.
6
+
7
+ Required preparation:
8
+
9
+ ```sh
10
+ npm test
11
+ python3 scripts/check-install.py
12
+ python3 scripts/check-public.py --history --ref HEAD
13
+ python3 scripts/prepare-release.py
14
+ ```
15
+
16
+ `prepare-release.py` checks the public package boundary and creates
17
+ `dist/kira-wallet-0.1.0.tgz` with a SHA-256 manifest. It never publishes. From the
18
+ reviewed source checkout, the operator's final command is:
19
+
20
+ ```sh
21
+ npm publish ./dist/kira-wallet-0.1.0.tgz --access public
22
+ ```
23
+
24
+ Use the operator's npm account and complete any npm authentication or OTP prompt.
25
+ After registry publication, installation is `npm install -g kira-wallet`, then
26
+ `kira setup`. Until publication, the public installation page uses the GitHub
27
+ source route. It does not claim a published registry release.
28
+
29
+ ## Public website
30
+
31
+ Only `site/` is deployed to the Vercel `kira-wallet` project. It contains a static
32
+ introduction, synthetic product illustration, original character assets and
33
+ installation instructions. It has no wallet inputs, portfolio API, chat API,
34
+ analytics or third-party runtime scripts. The local viewer remains loopback-only.
35
+
36
+ `kirawallet.app` uses Vercel nameservers and managed HTTPS. Project domain settings
37
+ are managed in the operator's Vercel team. Keep `.vercel/` metadata out of Git.
38
+ Future site deployments must use `--cwd site`, never the private portfolio root.
39
+
40
+ Design evidence: [Lazyweb Coinbase and wallet installation references](https://www.lazyweb.com/agentic-search/32f91923-4607-4d3a-aa06-ac09828b9a66).
41
+
42
+ Native extension approval, lock and account-change behavior remains a device
43
+ acceptance check. Synthetic providers and manually supplied public addresses do
44
+ not establish that native extension approval passed. These limitations do not
45
+ grant signing, trading or custody capability.
@@ -0,0 +1,98 @@
1
+ # Wallet capability direction
2
+
3
+ Agreed with the operator on 2026-10-04: begin with Watching wallet connection.
4
+ Transfers, swaps and OWS Managed wallets need separate design and verification
5
+ before implementation. This is a future direction, not a delivered capability.
6
+ The account/session and portfolio disclosure gates remain unchanged.
7
+
8
+ ## Two wallet groups, distinct authority
9
+
10
+ Watching Wallets contains manually entered or explicitly selected external
11
+ addresses. An extension connection is an address source and a temporary signer
12
+ session, not permission for Kira to spend. Disconnection removes the session
13
+ while preserving the recorded watching address. A changing extension account
14
+ must not silently add or replace a registered wallet.
15
+
16
+ Kira Managed Wallets would identify local OWS wallets with explicitly delegated
17
+ capabilities. A group name alone does not imply that Kira can sign. A locked,
18
+ unconfigured, expired or revoked signer must remain visibly unavailable.
19
+ The portfolio model remains keyed by chain and contract; source and execution
20
+ capabilities are separate metadata.
21
+
22
+ ## First implementation scope: Watching connection
23
+
24
+ The reviewed local `lptoken-fun` source was synced by fast-forward to
25
+ `b5782b507758f78b6b29e2571bcf1c48f458756b`. Its wallet stack uses Wagmi
26
+ 3.7.6, `injected()`, EIP-6963 discovery and an explicit wallet chooser. This
27
+ means an injected browser provider, not the Injective chain. Its bounded
28
+ reconnect, explicit disconnect and separate network-switch behavior are useful
29
+ references. Kira's vanilla browser does not require copying its entire React
30
+ or RPC stack.
31
+
32
+ A proposed first ticket will discover providers, let the user choose one,
33
+ request accounts only from that choice and preview an address and exact name
34
+ before the existing add-and-research operation. No login message, transaction,
35
+ chain switch or permission expansion is needed to add a watching address.
36
+ Handle absent extensions, user rejection, multiple providers, account changes,
37
+ disconnect and late responses. Address registration and provider-consuming
38
+ research remain an explicit user action. Mobile handoff is separate from a
39
+ successful local connection. An embedded browser may have no extension.
40
+
41
+ Primary references: [EIP-6963](https://eips.ethereum.org/EIPS/eip-6963),
42
+ [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193) and
43
+ [MetaMask connection documentation](https://docs.metamask.io/metamask-connect/).
44
+
45
+ ## Transfers and swaps: design before implementation
46
+
47
+ Reuse mature transaction and protocol libraries instead of writing custody or
48
+ DEX contracts. Reuse does not remove integration, approval, slippage, RPC,
49
+ protocol or supply-chain risk. Start by considering an external protocol handoff
50
+ for swaps. A native transfer flow would still need a confirmed recipient,
51
+ chain, asset, amount and fee estimate, fresh simulation and final approval in
52
+ the external wallet. An agent cannot infer that approval from a conversation.
53
+
54
+ An embedded swap needs a separate threat model and pinned provider selection.
55
+ The quote's target, chain, calldata, allowance spender, amount, minimum output
56
+ and deadline need independent checks. Default to exact allowances, visible
57
+ price impact and slippage, no arbitrary unsigned calldata execution, and no
58
+ cross-chain bridges in an initial scope. Review protocol guarantees rather than
59
+ calling an intermediary UI risk-free.
60
+
61
+ ## OWS Managed wallets: correction and proposed boundary
62
+
63
+ OWS is not seedless. Its current lifecycle derives accounts from a BIP-39
64
+ mnemonic and stores encrypted wallet secrets locally. Password encryption does
65
+ not remove backup and recovery responsibilities. The owner passphrase grants
66
+ full access without agent policy evaluation. Delegated API tokens instead
67
+ trigger policies and are themselves sensitive decryption capabilities.
68
+
69
+ The current reference architecture performs decryption and signing in-process.
70
+ It explicitly does not fully mitigate compromised process memory. A subprocess
71
+ enclave is described as future work. Local policies are code-path controls,
72
+ not an on-chain or hardware guarantee.
73
+
74
+ The proposed Kira boundary is a trusted local signer outside the model process.
75
+ The browser, model, prompts, research store, telemetry and Git never receive
76
+ the mnemonic, private key, owner passphrase or delegated token. OS-protected
77
+ credential access belongs to the signer. Model tools provide typed intents
78
+ only. The signer enforces wallet, chain, contract, method, recipient, token,
79
+ spending, fee, expiry and approval limits and rejects unsupported or undecoded
80
+ requests. Generic message signing and policy/credential modification must not
81
+ be exposed to the model. No environment credential inherited by an arbitrary
82
+ agent shell is acceptable as the boundary.
83
+
84
+ Before a Managed implementation, pin a specific OWS version and inspect its
85
+ actual APIs and policy behavior. Define creation, encrypted backup, restore,
86
+ revocation, audit retention, process isolation and OS-platform support. Begin
87
+ with synthetic/testnet verification and independent security review. A local
88
+ vault does not by itself justify unattended mainnet execution. Native secure
89
+ credential UX may require a companion application beyond this loopback viewer.
90
+
91
+ Primary references checked on 2026-10-04:
92
+ [OWS specification](https://docs.openwallet.sh/),
93
+ [wallet lifecycle](https://github.com/open-wallet-standard/core/blob/main/docs/06-wallet-lifecycle.md),
94
+ [policy access model](https://github.com/open-wallet-standard/core/blob/main/docs/03-policy-engine.md),
95
+ [current key isolation limits](https://github.com/open-wallet-standard/core/blob/main/docs/05-key-isolation.md).
96
+
97
+ No OWS package, wallet creation, signing, transfer or trade was used during this
98
+ research. These capabilities are not included in the workspace redesign PR.
@@ -0,0 +1,20 @@
1
+ {
2
+ "provider": "built-in image_gen",
3
+ "use_case": "logo-brand",
4
+ "reference": "viewer/static/kira.png",
5
+ "generation_prompt": "Use case: logo-brand. Asset type: Kira Wallet web app logo and favicon master. Reference image is the approved Kira character, for identity only. Create ONE centered compact square brand icon, with generous safe padding, no text or wordmark. Original crisp flat 2D webtoon emblem of an adult chic researcher: espresso hair in a recognizable loose low bun with side fringe, calm gray-violet eyes, composed subtle smile, ivory shirt and charcoal blazer neckline. Include a small simple lavender notebook at the lower edge. Simplify into bold clean shapes and restrained face lines that read at 32px; preserve adult proportions, no child/chibi look. Warm ivory, ink #292536, violet #6755CE and soft lavender. A rounded violet tile behind her, its outside truly transparent. No glow, gradients, detailed hatching, coins, wallet connector symbols, watermarks, scenery, multiple options or presentation sheet. The icon fills about 84% of the canvas and remains clear at small sizes.",
6
+ "refinement_prompt": "Clean the outside silhouette only; preserve face, espresso low bun, adult identity, lavender notebook, charcoal blazer, ivory shirt, violet tile and composition. Remove every stray pixel outside the tile, especially the white fragment below the bottom edge. Transparent exterior, no shadow, one icon, no text.",
7
+ "transparent_background": true,
8
+ "master": "viewer/static/kira-logo.png",
9
+ "secondary": "viewer/static/favicon.svg",
10
+ "secondary_method": "Original code-native notebook mark for tiny sizes; matching Kira's palette and accessory.",
11
+ "applications": [
12
+ "brand home link",
13
+ "Home button",
14
+ "Kira notes",
15
+ "empty state",
16
+ "add wallet dialog",
17
+ "browser icons",
18
+ "prototype navigation"
19
+ ]
20
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "provider": "built-in image_gen",
3
+ "reference": "viewer/static/kira.png",
4
+ "transparent_background": true,
5
+ "identity": "Approved adult Kira: espresso low bun, ivory shirt, charcoal blazer, lavender notebook.",
6
+ "assets": [
7
+ {
8
+ "path": "viewer/static/kira-research.png",
9
+ "state": "Active research",
10
+ "prompt": "Use case: identity-preserve. Asset type: Kira Wallet application character illustration, transparent cutout. Input image: approved adult Kira identity reference only, keep exactly the same woman, espresso loose low bun with side fringe, gray-violet eyes, ivory shirt, charcoal tailored blazer, lavender notebook and refined mature webtoon drawing style. Primary request: a new waist-up pose for Kira actively researching. She is in a three-quarter profile, calmly focused, writing in the opened lavender notebook with a slender pen, looking down at her notes; both hands natural. Intelligent, chic, understated editorial mood. Composition: one waist-up woman centered, complete silhouette and generous safe margin, drawn with clean confident ink lines, restrained crosshatching and muted flat color, slightly simplified for a desktop app at 190px. Transparent background, no scenery or surrounding UI. No lettering, numbers, wallet addresses, charts, coins, symbols, logos, speech bubbles, extra people, juvenile proportions or glow. Preserve the character identity and palette."
11
+ },
12
+ {
13
+ "path": "viewer/static/kira-explain.png",
14
+ "state": "Wallet, token and network explanation",
15
+ "prompt": "Use case: identity-preserve. Asset type: Kira Wallet application character illustration, transparent cutout. The reference is the approved adult Kira. Preserve exactly her espresso low bun with side fringe, mature face, gray-violet eyes, ivory shirt, charcoal tailored blazer, lavender notebook, refined detailed webtoon ink style and muted palette. Create a NEW waist-up pose of Kira explaining a finding: looking toward the viewer, a subtle confident smile, one hand holding the lavender notebook against her waist, the other open palm held outward in a composed explanatory gesture. Intelligent editorial personality, natural hands and adult proportions. One centered woman with safe transparent margin and no scenery. Clean ink outlines and restrained crosshatching. No text, labels, digits, coins, addresses, charts, screens, logos, glow or extra characters."
16
+ },
17
+ {
18
+ "path": "viewer/static/kira-review.png",
19
+ "state": "Activity review",
20
+ "prompt": "Use case: identity-preserve. Asset type: Kira Wallet application character illustration, transparent cutout. Reference image is the approved adult Kira, identity and style only. Keep her identical espresso loose low bun and side fringe, gray-violet eyes, mature features, ivory shirt and charcoal blazer, understated lavender notebook and refined webtoon ink style. Primary request: NEW waist-up pose of Kira reviewing saved research. She wears slender elegant dark reading glasses, holds her lavender notebook open in one hand, lifting her gaze slightly toward the viewer with a knowing gentle smile; the other hand lightly adjusts the glasses at her temple. Chic and intelligent professional researcher, calm natural posture, realistic hands, restrained crosshatching and muted colors matching the reference. One centered person with safe margin on genuinely transparent background. No lettering, charts, addresses, coins, numbers, screens, scenery, glow, logos or other people. Adult proportions."
21
+ },
22
+ {
23
+ "path": "viewer/static/kira-attention.png",
24
+ "state": "Coverage gaps",
25
+ "prompt": "Use case: identity-preserve. Asset type: Kira Wallet application character illustration, transparent cutout. Reference is the approved adult Kira, preserve exactly her espresso loose low bun and side fringe, mature calm face, gray-violet eyes, ivory shirt, charcoal tailored blazer and lavender notebook, refined webtoon drawing style, ink contours, muted palette and subtle crosshatching. Create a NEW waist-up pose for carefully checking incomplete evidence: her eyebrows very slightly furrowed in concentration, gaze thoughtfully to one side, one hand lightly rests at her chin, other arm holds the lavender notebook against her torso. Composed intelligent adult professional, not distressed or alarmed. One centered woman, safe margins, naturally drawn hands, truly transparent background. No typography, digits, addresses, warning symbols, charts, screens, coins, scenery, extra people, logos or glow."
26
+ }
27
+ ],
28
+ "delivery": "Generated cutouts were copied to the workspace and resized to an 800 pixel maximum edge for local UI delivery. Original identity asset is unchanged."
29
+ }