|
73545
|
1814
|
13
|
2026-04-23T07:53:59.825063+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-23/1776 /Users/lukas/.screenpipe/data/data/2026-04-23/1776930839825_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-19 13:26:02
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-18 13:26:53
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-17 13:27:05
From: 2026-04-16 00:00:00
To: 2026-04-16 23:59:59
root@docker_lamp_1:/home/jiminny#
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66
Learn more at [URL_WITH_CREDENTIALS] (-zsh)
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-19 13:26:02\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-18 13:26:53\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-17 13:27:05\nFrom: 2026-04-16 00:00:00\nTo: 2026-04-16 23:59:59\nroot@docker_lamp_1:/home/jiminny# \nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ php artisan jiminny:debug","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-19 13:26:02\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-18 13:26:53\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-17 13:27:05\nFrom: 2026-04-16 00:00:00\nTo: 2026-04-16 23:59:59\nroot@docker_lamp_1:/home/jiminny# \nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-9196671040552602032
|
328557213678029646
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-19 13:26:02
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-18 13:26:53
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-17 13:27:05
From: 2026-04-16 00:00:00
To: 2026-04-16 23:59:59
root@docker_lamp_1:/home/jiminny#
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66
Learn more at [URL_WITH_CREDENTIALS] (-zsh)
Close Tab
⌥⌘1
-zsh...
|
NULL
|
|
71767
|
1720
|
5
|
2026-04-22T13:27:02.817880+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864422817_m1.jpg...
|
iTerm2
|
docker
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-19 13:26:02
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-18 13:26:53
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-19 13:26:02\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-18 13:26:53\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-19 13:26:02\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-18 13:26:53\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
5297967322997074919
|
112384429291309390
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-19 13:26:02
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-18 13:26:53
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
NULL
|
|
71763
|
1721
|
2
|
2026-04-22T13:26:49.585244+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864409585_m2.jpg...
|
iTerm2
|
docker
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-19 13:26:02
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-19 13:26:02\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4787234,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-19 13:26:02\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.32912233,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33111703,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3879654,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3899601,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.44680852,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4488032,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5056516,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50764626,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.56449467,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56648934,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.62333775,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6253325,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.6821808,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.68417555,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.5013298,"top":1.0,"width":0.016289894,"height":-0.02394259},"role_description":"text"}]...
|
-7697588328371536429
|
400632393467415886
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-19 13:26:02
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
NULL
|
|
71764
|
1720
|
2
|
2026-04-22T13:26:50.887202+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864410887_m1.jpg...
|
iTerm2
|
docker
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-19 13:26:02
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-19 13:26:02\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-19 13:26:02\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-7697588328371536429
|
400632393467415886
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-19 13:26:02
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
NULL
|
|
71765
|
1720
|
3
|
2026-04-22T13:26:51.947841+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864411947_m1.jpg...
|
iTerm2
|
docker
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-19 13:26:02
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-19 13:26:02\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-19 13:26:02\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-7697588328371536429
|
400632393467415886
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-19 13:26:02
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
NULL
|
|
71754
|
1719
|
22
|
2026-04-22T13:25:55.221704+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864355221_m2.jpg...
|
iTerm2
|
docker
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4787234,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.32912233,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33111703,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3879654,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3899601,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.44680852,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4488032,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5056516,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50764626,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.56449467,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56648934,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.62333775,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6253325,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.6821808,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.68417555,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.5013298,"top":1.0,"width":0.016289894,"height":-0.02394259},"role_description":"text"}]...
|
-3297738260952560878
|
409357018242174214
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
NULL
|
|
71756
|
NULL
|
0
|
2026-04-22T13:25:58.648594+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864358648_m2.jpg...
|
iTerm2
|
docker
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4787234,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.32912233,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33111703,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3879654,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3899601,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.44680852,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4488032,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5056516,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50764626,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.56449467,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56648934,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.62333775,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6253325,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.6821808,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.68417555,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.5013298,"top":1.0,"width":0.016289894,"height":-0.02394259},"role_description":"text"}]...
|
-3297738260952560878
|
409357018242174214
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
NULL
|
|
71755
|
1718
|
24
|
2026-04-22T13:25:57.948081+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864357948_m1.jpg...
|
iTerm2
|
docker
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-20 13:25:31\nFrom: 2026-04-17 00:00:00\nTo: 2026-04-17 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-3297738260952560878
|
409357018242174214
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-20 13:25:31
From: 2026-04-17 00:00:00
To: 2026-04-17 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
71753
|
|
71749
|
1718
|
22
|
2026-04-22T13:25:28.912353+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864328912_m1.jpg...
|
iTerm2
|
docker
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nNow: 2026-04-21 13:25:21\nFrom: 2026-04-20 00:00:00\nTo: 2026-04-20 23:59:59\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-4383525809276013089
|
480218348459377927
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-21 13:25:21
From: 2026-04-20 00:00:00
To: 2026-04-20 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
NULL
|
|
71745
|
1719
|
18
|
2026-04-22T13:25:18.125889+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864318125_m2.jpg...
|
iTerm2
|
docker
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4787234,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.32912233,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33111703,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3879654,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3899601,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.44680852,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4488032,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5056516,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50764626,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.56449467,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56648934,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.62333775,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6253325,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.6821808,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.68417555,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.5013298,"top":1.0,"width":0.016289894,"height":-0.02394259},"role_description":"text"}]...
|
7095311769233293984
|
-8790445886833339103
|
click
|
hybrid
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker
PhostormFV faVsco.js vcode%9 JY-20157-AJ-report-not-send-notificaProledey© IterateUsersCommand.phpC) Jiminnycacheclearcommana.JiminnyDeougcommana.onpC) Jiminnysetencrypted lokenma©) Jiminnylokenintocommand.o)MakeslackLivecoachinachatn© ManageScimForTeam.phpc) MarkBranchrorEnvironmentPirc) MuteOrganizerchannel.phpc) PhoApm.php(C) PropagateCoachingFeedbackoC) Purgeconterences.ohpAutomatedkeporsserwice.ong© SendReportNotGeneratedMailJob.php(@)AutomatedReoortsRepository.ong) Automatedkeportkesult.png* Class JiminnyDebugCommandc)PurcesvncBatchescommand.r(C) RemoveDeleteMarkersComma© RemoveExpiredNudgesComma(C) RemoveUnusedParticioantSoe© ResetElasticSearch.php(c) RoctoreActivitvermProviderldl© RestoreActivityTypeCommand© SeedActivities.php© SyncActivity.php© Tracklmported.php© UpdateActivitiesAverageScore© WhichWorkerlsWorkingOnWhic> D Scheduling© Kernel.php› D Contracts• Domain> DDTODEmails› D Enums~ D EventsV D Activities> ActivitvProviden> D AiAutomationDAudio> BotsCoaching• M ConterencesConnectionsv MCrm©ActivityCancelled.phpC) ActivitvCancelledAsNoShol© ActivityLeadConverted.php© ActivityLinkedToCrm.php©ActivityLogged.php©ActivityScheduled.php©AutoLogActivity.php© EmailWithCRMObjectsProc* @package Jiminny\ConsoLe\CommandsLass JiminnyDebugCommand extends Commandpublic const string FREQUENCY_DAILY = 'daily';public const string FREQUENCY_WEEKLY = 'weekly';public const string FREQUENCY_MONTHLY = 'monthly';public const string FREQUENCY_ OUARTERLY = 'quarterly':public const string FREQUENCY_ONE_OFF = 'one_off';protected ssignature = "niminny: debua':public function handle(JobDispatcherInterface $jobDispatcher, AutomatedReportsService $automatedReportsService): voi$now = Carbon: :now() ->subDay(1);Sfrom = Snow->copy()->previousWeekday()->start0fDayO);Sto = Snow->convO->oreviousWeekdavO->end0fDav@•Sthis->info( string: "Now: {$now->toDateTimeString()}");$this->info( string: "From: ($from->toDateTimeString()}");$this-›info( string: "To: {$to->toDateTimeString()}");exit (1);Sreport = AutomatedReport::find(71);$job = new RequestGenerateAskJiminnyReportJob($report->getUuid());snoou1spaccher->alspacchlso0)exitu)"$this->formatbate($jobbispatcher);Sthis->sendMail(SiobDisnatcher. SautomatedRenortsService):Sthis->crmServiceosSthis->getPavload(SautomatedRenortsService):exit(n:wea zL Aor 10.20:10+0 ..=custom.logA console [EU]E laravel.log x A SF [jiminny@localhost]A console [STAGING]A HS_local [jiminny@localhost]A console [PROD]2026-04-22 12:57:1111Jamuny \Uobs\Maitbox|CneateBatches] processe e[2026-04-22 12:58:03] Local. INFO:Jiminny\ConsoLe\Commands \Command: : run Memory usage before sta12:58:051ScheduLeßotcommand Mumber of activitles to de captured: 012:58:03]Local. INFO: Jiminny\Console\Commands\Command: :run Memory usage for comman2026-04-22 12:58:051 LocoL, INF0: Jiminny Console Commands Command::run Memory usage before sta(2026-04-22 12:58:05] Local. INFO: Jiminny\Console\Commands\Command: :run Memory usage for comman2026-04-2212:58:07LocaL NoTICE: Monitoring start"correlation_1d":"c45f0584-bcf3-44c9-09ª[2026-04-22 12:58:07]Local.NOTICE: Monitoring end {"correlation_id":"c45f0584-bcf3-44c9-b9a2-2026-04-22 12.58-137Local. INFO: Jiminny\Console\Commands\Command: :run Memory usage before sta[2026-04-22 12:58:13]Local. INFO: Jiminny\Console\Commands\Command: :run Memory usage for comman12026-04-22 12•58•211|Local.INFO: Jiminny\Console\Commands\Command::run Memory usage before sta[2026-04-22 12:58:21][EmailSchedule] STARTING batch process ("host": "docker_Lamp_1[2026-04-22 12:58:21]local. INFO: Processing email batch 98408 for inbox 212 {"correlation_id"[2026-04-22 12:58:21]Local.INFO:[SocialAccountService] Fetching token {"socialAccountId" : 150€[2026-04-22 12:58:21]Local. INFO: [SocialAccountService] Token retrieved {"socialAccountId" : 156[2026-04-22 12:58:21]Local.INFO:[EncryptedTokenManager] Generating access token. {"mode": "Zeg[2026-04-22 12:58:21]Local. INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"c[2026-04-22 12:58:21]Local.INFO:[SocialAccountService] Fetching token {"socialAccountId":1354[2026-04-22 12:58:21][SocialAccountService] Token retrieved {"socialAccountId":135[2026-04-22 12:58:21]encryptedlokenManager benerating access token. ""mode":"Lec[2026-04-22 12:58:24]Local. INFO: Processing an email from inbox batch {"batch":98408, "inbox_ic[2026-04-22 12:58:24][SocialAccountServicel Fetching token {"socialAccountId":150€[2026-04-22 12:58:24][SocialAccountService] Token retrieved {"socialAccountId" :15€[2026-04-22 12:58:24]encrvoted okenranader benerarino access token.• "mode":"Leo[2026-04-22 12:58:24][CrmOwnerResolver] Integration owner matched as CRM Owner {"c[2026-04-22 12:58:24][EmailImport\ParticipantsResolverl The sender email is blackl[2026-04-22 12:58:24][EmailImport\ParticipantsVaLidator] Email participants are le[2026-04-22 12:58:24]Processing an email from inbox batch ""batch":98408."inbox 10[2026-04-22 12:58:24][SocialAccountService] Fetching token {"socialAccountId" :15062026-04-22 12.58:241[SocialAccountServicel Token retrieved {"socialAccountId"•15%[2026-04-22 12:58:24]Local.INFO:[EncryptedTokenManager] Generating access token. {"mode" :"Leg2026-04-2212•58.241CrmOwnerResolver] Intearation ownen matched as CRM Ownen "12:58:24]Local. INFO:[EmailImport\ParticipantsResolver] The sender email is blackl12•58•2411EmarlImnort ParticinantsValidator Email narticinants are 1e[2026-04-2212:58:241Local.INFO:2026-04-2212:58:24]Processing an email from inbox batch {"batch":98408, "inbox_ic[2026-04-22 12:58:24]Local.INFO:[SocialAccountService] Token retrieved {"socialAccountId" :15€2024-04-2212•58.2/11[EncryptedTokenManager] Generating access token. {"mode": "Leg[2026-04-22 12:58:24]Local. INFO:[CrmOwnerResolver] Integration owner matched as CRM Owner {"c[2026-04-22 12:58:24]Local. INFO:[EmailImport\ParticipantsResolver] The sender email is blackl(2026-04-22 12:58:24] Local. INFO: [EmailImport\ParticipantsVaLidator] Email participants are leг2004-04-29 12.59.241Jocal TNSh• Prococcina an email fnom inboy batch Suhatchil.09400 ljnhoyic{2026-04-22 12:58:24][SocialAccountService] Fetching token {"socialAccountId":150€гaAn404 99 19.99.9/1local.INF0: [SocialAccountServicel Token retrieved {"socialAccountId":156[2026-04-22 12:58:241[EncryptedTokenManager] Generating access token. {"mode": "LegToллi TNC0. Гoлm0wnorDocdluonl Totoanotjon Aunon motahodl de CDM Ounon fu.12026-04-22 12:58:241[EmailImport\ParticipantsResolver] The sender email is blacklLocaz. INFO: [EmailImport\ParticipantsValidator] Email participants are le[2026-04-22 12:58:241Local. INFO: Processing an email from inbox batch f"batch":98408, "inbox_ic[2026-04-22 12:58:24] Local. INFO: [SocialAccountServicel Fetchina token {"socialAccountId":150€Report Activity CountRead AutonatedReportsServiceTest.php #L2469-2493Test only checks structure, still passes.SummaryChanges1. Skip weekend dispatchAutomatedReoortscommand.oho:86-86 - when scheduler runs on Sat/Sun, dailv reoorts are not dispatched, =-reporto1dmanual trigger still bypasses the skip.Z. "Yesterday" = previous weekdav for dailvBoth date-range calculators now use previousweekday() for daily:• AskJiminnyReportActivityService.php: 115-118 (Elastic query filter)• AutomatedReportsService.php:1785-1788 (displayed report period name)Errect oer dav-or-week when the scheduler runs at 01:00)Run dayDaily report coversFri (skips Sat + Sun)WedWedThu- skippedSun— skiopedSince both services use the same previousWeekday() logic, the Elastic date window and the displayed report_period (e.g. "Fri17 Apr 2026" ) stay in sync3. Tests updatedAskJiminnyReportActivityServiceTest.php:• Data provider daily row now expects previousWeekday() bounds.•testGetact1v1tyidsFrequencyDateRange0verridesSavedSearchDateFilters asserts 2025-06-13 (Fri) instead of 2025-06-15 (Sun), since test now ( 2025-06-16 ) is a Monday.Per your rules I did not add tests for the console command. Existing command tests use weekday dates (Mar 13 2024, Dec 112023, Dec 12 2023, Mar 1 2024, Oct 1 2024, Jul 1 2024) so the new weekend guard doesn't affect them.rtc/M.Ack.liminnvPonortActivitvSorvicoToct nhn tdapp/Services/Kiosk/AutomatedReports/ AutomatedReportsService.php +2 ~2enorts/m Ask.liminnvRenortActivitvService.ohv +2Ask anvthing (*4L)+ « CodeClaude Qnus 4.7 MediumView all#Reject allAccent alliW Windsurf Teams26-41UITE.Rf. 4 spa...
|
71744
|
|
71746
|
1718
|
19
|
2026-04-22T13:25:19.093309+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864319093_m1.jpg...
|
iTerm2
|
docker
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
7095311769233293984
|
-8790445886833339103
|
visual_change
|
hybrid
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpdockerDOCKER7,- 981docker-zshroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug* Build full day ac... • &4screenpipe"O 85§ Al chapter • in 35 m-zsh86APP (-zsh)100% (<47*87Wed 22 Apr 16:25:19T81ec2-user@ip-10-..• *8...
|
71743
|
|
54780
|
1184
|
25
|
2026-04-20T09:19:13.096195+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676753096_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
7539577882853048331
|
-8168795206823260255
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54778
|
|
54785
|
1184
|
28
|
2026-04-20T09:19:21.646556+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676761646_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
7539577882853048331
|
-8168795206823260255
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54779
|
1183
|
24
|
2026-04-20T09:19:13.179285+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676753179_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
7539577882853048331
|
-8168795206823260255
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54777
|
|
54784
|
1183
|
26
|
2026-04-20T09:19:21.509992+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676761509_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
7539577882853048331
|
-8168795206823260255
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54782
|
|
54797
|
1184
|
36
|
2026-04-20T09:20:08.684166+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676808684_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-728622984809440735
|
1054577040768094137
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54913
|
1186
|
16
|
2026-04-20T09:23:22.938689+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677002938_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-728622984809440735
|
1054577040768094137
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54911
|
|
54796
|
1183
|
30
|
2026-04-20T09:20:08.310342+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676808310_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-728622984809440735
|
1054577040768094137
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54792
|
|
54912
|
1185
|
12
|
2026-04-20T09:23:22.608289+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677002608_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-728622984809440735
|
1054577040768094137
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54915
|
1186
|
17
|
2026-04-20T09:23:53.243084+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677033243_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":0.9768556,"width":0.4800532,"height":0.023144424},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
5058675432629079800
|
3215834640096142653
|
idle
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54917
|
1186
|
18
|
2026-04-20T09:24:23.496599+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677063496_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":0.9768556,"width":0.4800532,"height":0.023144424},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
5058675432629079800
|
3215834640096142653
|
idle
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54915
|
|
54926
|
1186
|
23
|
2026-04-20T09:25:04.634786+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677104634_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":0.9768556,"width":0.4800532,"height":0.023144424},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
5058675432629079800
|
3215834640096142653
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54925
|
|
55017
|
1188
|
16
|
2026-04-20T09:29:47.561848+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677387561_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":0.9768556,"width":0.4800532,"height":0.023144424},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
5058675432629079800
|
3215834640096142653
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
55015
|
|
54914
|
1185
|
13
|
2026-04-20T09:23:35.824741+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677015824_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.0,"width":1.0,"height":1.0},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
5058675432629079800
|
3215834640096142653
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54912
|
|
54916
|
1185
|
14
|
2026-04-20T09:24:06.089850+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677046089_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.0,"width":1.0,"height":1.0},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
5058675432629079800
|
3215834640096142653
|
idle
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54918
|
1185
|
15
|
2026-04-20T09:24:36.305965+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677076305_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.0,"width":1.0,"height":1.0},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
5058675432629079800
|
3215834640096142653
|
idle
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54916
|
|
54927
|
1185
|
19
|
2026-04-20T09:25:04.894973+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677104894_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.0,"width":1.0,"height":1.0},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
5058675432629079800
|
3215834640096142653
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
55016
|
1187
|
9
|
2026-04-20T09:29:47.567901+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677387567_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.0,"width":1.0,"height":1.0},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
5058675432629079800
|
3215834640096142653
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
55042
|
1187
|
21
|
2026-04-20T09:30:52.925198+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677452925_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 3.21ms DONE
cache [PASSWORD_DOTS] 10.93ms DONE
compiled [PASSWORD_DOTS] 2.33ms DONE
events [PASSWORD_DOTS] 1.03ms DONE
routes [PASSWORD_DOTS] 0.90ms DONE
views [PASSWORD_DOTS] 3.19ms DONE
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 3.21ms DONE\n cache ............................................................................................................................... 10.93ms DONE\n compiled ............................................................................................................................. 2.33ms DONE\n events ............................................................................................................................... 1.03ms DONE\n routes ............................................................................................................................... 0.90ms DONE\n views ................................................................................................................................ 3.19ms DONE\n\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 3.21ms DONE\n cache ............................................................................................................................... 10.93ms DONE\n compiled ............................................................................................................................. 2.33ms DONE\n events ............................................................................................................................... 1.03ms DONE\n routes ............................................................................................................................... 0.90ms DONE\n views ................................................................................................................................ 3.19ms DONE\n\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
1080241547781938729
|
4440818181349746989
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 3.21ms DONE
cache [PASSWORD_DOTS] 10.93ms DONE
compiled [PASSWORD_DOTS] 2.33ms DONE
events [PASSWORD_DOTS] 1.03ms DONE
routes [PASSWORD_DOTS] 0.90ms DONE
views [PASSWORD_DOTS] 3.19ms DONE
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
55019
|
1188
|
17
|
2026-04-20T09:29:52.518414+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677392518_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all","depth":4,"bounds":{"left":0.27027926,"top":0.9768556,"width":0.4800532,"height":0.023144424},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
4848913283102042896
|
3287896674592269589
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
55018
|
1187
|
10
|
2026-04-20T09:29:50.588575+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677390588_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all","depth":4,"bounds":{"left":0.0,"top":0.0,"width":1.0,"height":1.0},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 16.45ms DONE\n cache ............................................................................................................................... 58.18ms DONE\n compiled ............................................................................................................................. 3.31ms DONE\n events ............................................................................................................................... 1.74ms DONE\n routes ............................................................................................................................... 1.75ms DONE\n views ............................................................................................................................... 14.46ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
4848913283102042896
|
3287896674592269589
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 16.45ms DONE
cache [PASSWORD_DOTS] 58.18ms DONE
compiled [PASSWORD_DOTS] 3.31ms DONE
events [PASSWORD_DOTS] 1.74ms DONE
routes [PASSWORD_DOTS] 1.75ms DONE
views [PASSWORD_DOTS] 14.46ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
artisan-schedule:artisan-schedule_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-emails:worker-emails_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
55016
|
|
54786
|
1183
|
27
|
2026-04-20T09:19:22.899961+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676762899_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-3668880663774446083
|
-8168799604335030488
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53834
|
1163
|
62
|
2026-04-20T08:29:54.146724+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673794146_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
1744865349186139800
|
-6014043018306018788
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53831
|
|
53825
|
1162
|
50
|
2026-04-20T08:29:39.355688+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673779355_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
1744865349186139800
|
-6014043018306018788
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53823
|
|
53833
|
1162
|
54
|
2026-04-20T08:29:54.216495+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673794216_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
1744865349186139800
|
-6014043018306018788
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53832
|
|
53826
|
1163
|
58
|
2026-04-20T08:29:44.215740+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673784215_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
1744865349186139800
|
-6014043018306018788
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53824
|
|
53836
|
1163
|
63
|
2026-04-20T08:30:00.478018+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673800478_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
214677970165296243
|
-6014060602187374052
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53835
|
1162
|
55
|
2026-04-20T08:29:57.621362+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673797621_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
214677970165296243
|
-6014060602187374052
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53844
|
1162
|
59
|
2026-04-20T08:30:36.830132+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673836830_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
214677970165296243
|
-6014060602187374052
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53850
|
1165
|
1
|
2026-04-20T08:30:44.441144+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673844441_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-4919487151736841628
|
-8608134124993797604
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53845
|
NULL
|
0
|
2026-04-20T08:30:40.306467+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673840306_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-4919487151736841628
|
-8608134124993797604
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53844
|
|
53849
|
1164
|
2
|
2026-04-20T08:30:44.441144+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673844441_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-4919487151736841628
|
-8608134124993797604
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53852
|
1165
|
2
|
2026-04-20T08:30:51.143392+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673851143_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53850
|
|
53864
|
1165
|
9
|
2026-04-20T08:31:40.527549+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673900527_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53851
|
1164
|
3
|
2026-04-20T08:30:46.672945+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673846672_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53849
|
|
53863
|
1164
|
8
|
2026-04-20T08:31:40.689339+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673900689_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53872
|
1165
|
12
|
2026-04-20T08:31:50.529501+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673910529_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-6402554628795599335
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53869
|
|
53871
|
1164
|
13
|
2026-04-20T08:31:50.584477+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673910584_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-6402554628795599335
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53870
|
|
53874
|
1165
|
13
|
2026-04-20T08:31:56.339695+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673916339_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53900
|
1165
|
28
|
2026-04-20T08:32:33.860069+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673953860_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|