Skip to content
View hazrid93's full-sized avatar
😀
Coding is my meditation
😀
Coding is my meditation
  • Malaysia
  • 22:59 (UTC +08:00)

Block or report hazrid93

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
hazrid93/README.md

Hi there 👋 I'm Azad

Full-stack engineer · AI tooling, bot platforms, and AI-integrated web apps (backend + frontend)

Followers Repos Email LinkedIn


📦 Private Projects

Source code for these projects is private. Architecture diagrams are hosted here in my profile repo so visitors can explore the design without repo access.

Project Lang Description Architecture
neyobytes-whatsapp-agent JS WhatsApp Bot SaaS platform for creating AI-powered WhatsApp bots — business inquiries, customer support, and automated workflows. Multi-tenant, multi-LLM provider routing, Stripe billing. 📐 Diagrams · DeepWiki
neyobytes-jemput TS Digital wedding invitation platform for the Malaysian market. Couples create beautiful, themed digital invitations. 🌐 Live 📐 Diagrams · DeepWiki
neyobytes-auto-invoice TS AI-assisted Malaysian e-Invoice workflow for SMEs — scan invoices, review official MyInvois fields and code tables, record purchases, and prepare compliant UBL submissions. TOP SECRET :)

🌐 Open Projects

Project Lang Description Architecture
pi-fabric-role-router TS Community Pi extension adding centralized role-based model, thinking, and tool routing to Pi Fabric, with roles.run() and roles.spawn() dispatch. README
pi-pool-router TS In-process extension for pi/omp that pools multiple LLM backends behind a single provider — cache-affinity consistent hashing, failover, health checks, and latency-aware routing. 📐 Diagrams · DeepWiki
discord-rhythm-bot TS Discord audio bot streaming from YouTube & Soundcloud via play-dl. MongoDB-backed user/guild history with priority playlist queue. ⭐ 1 📐 Diagrams · DeepWiki
pi-xiaomi-mimo-provider TS Pi plugin integrating Xiaomi MiMo models as a provider for the pi coding agent. 📐 Diagrams · DeepWiki
pi-advisor TS Pi extension that attaches a second model as an advisor — it peer-reviews every turn of the main agent, explores the workspace with a read-only toolset, and injects <advisory> notes (nit / concern / blocker). Ports the advisor logic from can1357/oh-my-pi to stock pi. 📐 Diagrams · DeepWiki
omp-vision-handoff TS omp-compatible fork of pi-vision-handoff — gives text-only models vision by proxying image input through a vision-capable model. Fixed omp runtime API mismatches (getApiKeyAndHeadersgetApiKey, broken /compat import). INSTALL.md
BlackForest-BSC20 Solidity BSC-20 token contract for BlackForest on the Binance Smart Chain. 📐 Diagrams · DeepWiki
YearnDeployerAlerterBot Java Monitors Yearn deployer activity on Etherscan and auto-posts alerts to Twitter. ⭐ 2 📐 Diagrams · DeepWiki

👨🏻‍🔧 Open Source Contributions (103)

PR Project Description
#2440 cobra Add a way to render Example as a text/template executed against the command, so placeholders like
#2441 cobra Add OnInitializeE which registers func() error functions run after all OnInitialize functions during preRun.
#2442 cobra Add a timeValue pflag.Value implementation that parses/formats a time.Time using a reference layout, plus
#2443 cobra Add a "wrap" template helper for custom usage/help templates: {{wrap .Long 80}} word wraps the given string
#2444 cobra Add a SuggestFunc field and SetSuggestFunc helper.
#2445 cobra Add a Command.FlagUsagesTrimRequired(fs) method that returns pflag's FlagUsages output for fs but with the
#4253 date-fns Add a style option to formatDistanceStrict: long (default, unchanged) uses the locale words; narrow renders
#4254 date-fns Add a new function formatDurationCustom(duration, labels, options?) that renders a Duration using a custom
#4255 date-fns Add two functions: addDurations(duration1, duration2) sums two Duration objects component wise (each unit
#4256 date-fns Add normalizeDuration(duration) that carries overflow units upward within their natural ranges: seconds to
#4257 date-fns Add formatDatetimeLocal(date, options?) that formats a date as YYYY MM DDTHH:mm by default, with optional {
#1551 valibot Add a uuidVersion(version, message?) action that takes a version (1 8) and validates the string is a UUID
#1552 valibot Add a urlRelative(message?) action that accepts relative URLs (URL references without a scheme) by
#1553 valibot Add an int32(message?) action that validates a number is within [ 2147483648, 2147483647] (the OpenAPI
#1554 valibot Add an isoDuration(message?) action that validates a string is an ISO 8601 / RFC 3339 duration
#1555 valibot Add a cidr(message?) action that validates both IPv4 CIDR (192.168.1.0/24) and IPv6 CIDR
#1556 valibot Add an rfc3339Time(message?) action that validates HH:MM:SS with optional fractional seconds (.\d+)
#1557 valibot Add a base64Url(message?) action that validates the base64url alphabet with optional padding (both padded
#1558 valibot valibot has toLowerCase/toUpperCase but no actions for the common case conversions (camelCase, snake_case,
#1906 es-toolkit Add unFlattenObject(object, {delimiter='.'}) that unflattens a single level object with delimiter separated
#1907 es-toolkit Add four composable helpers: exponentialBackoff({baseDelay, maxDelay, multiplier}) returns a delay function
#1908 es-toolkit Add dedent(str) that strips a leading newline + trailing whitespace only line, computes the minimum common
#1909 es-toolkit Add capitalCase(str) that capitalises the first letter of each word and lower cases the rest, joining words
#1910 es-toolkit Add memoizePromise(fn, options) that caches the in flight Promise (so concurrent calls with the same
#1911 es-toolkit Add cartesianProductGenerator(...arrs), a generator that yields each tuple lazily in the same lexicographic
#1912 es-toolkit Add call(fn) which invokes fn and returns its result (a named IIFE replacement), and callAsync(fn) which
#1913 es-toolkit Add normalize(value, min, max) returning (value min) / (max min).
#1914 es-toolkit Add throttleAsync(func, {signal}) that only allows a new invocation when the previous one has completed.
#1915 es-toolkit Add flowAsync(...funcs): the async counterpart of flow: that awaits each step's result before passing it to
#4258 date-fns Add nthDayOfMonth(date, dayOfWeek, n) returning the Date of the nth occurrence of dayOfWeek (0=Sunday
#4259 date-fns Add formatDurationClock(duration, {format, delimiter}) that renders a Duration as a colon separated, zero
#4260 date-fns Add convertMomentFormat(momentFormat) that converts a moment.js format string to the equivalent date fns
#2446 cobra Add a DeprecationMessage func(cmd *Command) string field: when set, it is called and its return value
#2447 cobra Add RemoveGroup(ids...) that removes the groups with matching IDs from the command, mirroring
#490 radash Add pickBy(obj, predicate) that returns a copy of obj containing only entries whose value passes the
#491 radash Add pipe(value, ...fns) that passes value through the functions left to right immediately and returns the
#492 radash Add mapify(array, getKey, getValue?) that builds a Map (supporting any key type, preserving insertion
#493 radash Add round(value, precision=0) mirroring lodash's round: rounds value to precision decimal places.
#494 radash Add listToTree(items, {idKey='id', parentKey='parent', childrenKey='children'}) that returns the root nodes
#495 radash Add cloneDeep(obj) that recursively clones nested objects, arrays, Dates, RegExps, Maps and Sets so the
#496 radash Add shakeDeep(obj, filter=x => x===undefined) that recursively removes unwanted values from an object and
#497 radash Add collect(array, fn): a map+filter combo that maps array through fn and keeps only results that are not
#498 radash Add an onRetry?: (info: { count; error }) => void option that is invoked on each failed attempt (with the 1
#362 ufo Add withPathParameters(input, params, options?) that substitutes placeholders matched by
#363 ufo Add withoutQuery(input) that removes the ?... query section, preserving the rest of the URL including any
#199 ohash Add sha256(data): the SHA 256 hex digest (node:crypto createHash, lowercase hex), the hex variant of the
#186 defu Add an allowNullish option to createDefu: createDefu(merger?, { allowNullish: true }) produces a defu
#176 destr Add a strictBigInt option to Options: when true, a bare integer string beyond Number.MAX_SAFE_INTEGER (e.g.
#260 citty Add a `validator?: (value, arg) => boolean
#261 citty Add a "number" ArgType: citty parses the value with Number(), throws a CLIError (EARG) when it is NaN, and
#252 pathe Add safeName(name): strips illegal characters (< >: " / \
#177 destr Add a reviver?: (key, value) => any option modeled on JSON.parse's reviver, applied bottom up to the
#187 defu Add a warnDuplicates option to createDefu: when true, defu logs a console.warn for each base property
#188 defu defu merges string keyed properties but silently ignores Symbol keys (Object.keys omits them), so symbol
#262 citty Add a "multiPositional" ArgType that collects all remaining positional arguments into a string[].
#1916 es-toolkit Add deepFreeze(obj) that recursively Object.freezes every nested object/array so no property (including
#1917 es-toolkit Add chain(...iterables): a lazy generator that yields every element of every iterable, in order, without an
#1918 es-toolkit Add firstValue(iterable) that pulls a single value via the iterator protocol
#1919 es-toolkit Add hashObject(value) that returns a deterministic 8 char hex hash of a stable serialization: object keys
#4261 date-fns Add addDuration(durationA, durationB) and subDuration(durationA, durationB) that, per unit
#4262 date-fns Add compareDurationsAsc(left, right) returning 1/0/1 (shorter/equal/longer) and compareDurationsDesc(left,
#1920 es-toolkit Add debounceAsync(func, debounceMs, { signal?
#4263 date-fns Add parseISODuration(duration): parses P3Y6M4DT12H30M5S into { years:3, months:6, days:4, hours:12,
#4264 date-fns Add getAge(dateOfBirth, { today }): built on intervalToDuration: returning { years, months, days }, the
#4265 date-fns Add isBusinessDay(date, { holidays?: Date[], weekStartsOn?
#4266 date-fns Add isISOMatch(value, { representation?
#4267 date-fns Add scaleDuration(duration, multiplier): multiplies every present unit of the duration by the multiplier,
#1921 es-toolkit Add coalesce(key, fn): if a call with key is already in flight, return its promise; otherwise run fn()
#2448 cobra Add a package level var EnableFlagSorting = true (mirroring EnableCommandSorting).
#3959 faker Add an optional exclude option (enumValue(enumObject, { exclude: [...] })): values in exclude are not
#3960 faker Add a `casing?: 'lower'
#3961 faker Add an optional { depth, root } to directoryPath: when depth is omitted, behavior is unchanged (a
#3962 faker Add an optional { excludeEmoji?: boolean } to person.bio: when true, the generated bio is stripped of
#3963 faker Allow the value of each entry to be a () => T function; when the entry is selected, the function is
#2449 cobra Add GenMarkdownTreeCustomE(cmd, dir, filePrepender, linkHandler, cmdHandler): identical to
#3964 faker Add an optional { useAbbreviated?: boolean } to location.street: when true, common USPS style street
#3965 faker Add an optional `{ weighting?: 'female'
#3966 faker Add an optional { sexType?: SexType }: when omitted, behavior is unchanged (uniform arrayElement).
#1922 es-toolkit Add isTreeData(value, { childrenKey?
#1923 es-toolkit Add an optional { map?: boolean } (default false, unchanged behavior): when true, flattenObject returns a
#1924 es-toolkit Add groupByMap, keyByMap, countByMap: Map returning variants whose keys can be of any type (including
#1925 es-toolkit Add medianBigint(nums: bigint[]): bigint: the middle value for odd length arrays; for even length, the
#2450 cobra Add ReparseFlags(args): resets the command's local and persistent flags to their default values (each
#2451 cobra Add ResetInitializers() (package level): clears the registered initializers (initializers = nil).
#2452 cobra Add a PostParseFlagsE func(cmd, args) error field on Command, invoked in execute() right after
#2453 cobra cobra's HelpFunc returns an inline closure (the default help renderer); the default is not separately
#3967 faker Add an optional { allowOnlyExamples?: boolean }: when true, returns .example.<com
#2454 cobra Add SetArgErrorFunc(f func(*Command, error) error) + ArgErrorFunc() (with parent inheritance + a default
#5029 react-native-paper Add Autocomplete text input with filtered dropdown, custom filter predicate, empty state, disabled state, and public type exports
#5030 react-native-paper Add Material 3 NavigationRail with controlled active destination, indicator pill, label visibility modes, alignment, and header slot
#5031 react-native-paper Extend Tooltip with a rich mode: optional heading, multi line supporting text, two action buttons, and persistent dismiss behaviour
#5032 react-native-paper Add static determinate circular progress indicator with configurable size, stroke, colors, and accessibility value
#5033 react-native-paper Add Material 3 slider with clamped bounds, step snapping, accessibility value, disabled dimming, and theme colors
#5034 react-native-paper Add Material 3 Tabs with primary and secondary variants, active indicator, badges, disabled tabs, and scrollable layout
#5035 react-native-paper Add Material 3 calendar date picker with month navigation, full six week grid, min and max disabling, and accessibility labels
#5036 react-native-paper Add Material 3 time picker with hour and minute steppers, AM/PM toggle for 12 hour mode, wrap around, and optional minute step
#4252 date-fns Add a style option to formatDuration with long, narrow, and short unit label styles plus a per unit formatter map, keeping default output unchanged
#1166 codex-lb Add GPT-5.6 Responses Lite support — preserve additional_tools input items + reconstruct the x-openai-internal-codex-responses-lite header when forwarding
#4 pi-makora-provider Fix: strip tool_calls from assistant messages for GLM models to prevent ZAI/vLLM 400 crash
#57 rn-qr-generator Barcode scanner enhancement via retry with inset and zoom
#1599 react-native-share Add base64 image support under linkMetadata for iOS custom sharing icon
#113 octofriend Add @ file autocomplete suggestions
#7 streamvault Make Comet streams work in StreamVault — pad base64 config encoding + parse Comet's real metadata fields (filename, videoSize, bingeGroup) instead of Torrentio's shape

📫 Connect With Me

Email   LinkedIn   GitHub

Pinned Loading

  1. pi-advisor pi-advisor Public

    A second model that peer-reviews every turn of your main pi agent and injects concise advice. Ports oh-my-pi advisor logic to a pi extension.

    TypeScript 3

  2. pi-pool-router pi-pool-router Public

    Pi/omp in-process extension that pools multiple LLM backends behind a single provider — handles routing, failover, health checks, and latency-aware selection

    TypeScript 2

  3. react-native-share/react-native-share react-native-share/react-native-share Public

    Social share, sending simple data to other apps.

    Java 3.9k 975

  4. gevgasparyan/rn-qr-generator gevgasparyan/rn-qr-generator Public

    A QR code image generator and detector for React Native.

    Java 163 24

  5. discord-rhythm-bot discord-rhythm-bot Public

    Node.js | Discord audio bot featuring play-dl to stream audio from YouTube & Soundcloud. Supports user/guild history using MongoDB and priority queue feature for playlist.

    TypeScript 2

  6. pi-xiaomi-mimo-provider pi-xiaomi-mimo-provider Public

    Pi plugin for Xiaomi MiMo

    TypeScript