@agimon-ai/doompi-loop 0.0.1-alpha.73 → 0.0.1-alpha.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +15 -14
- package/dist/_virtual/_rolldown/runtime.cjs +0 -1
- package/dist/api-contracts.cjs +0 -1
- package/dist/api-contracts.d.cts +0 -2
- package/dist/api-contracts.d.mts +0 -2
- package/dist/api-contracts.mjs +0 -1
- package/dist/extensions/pi.cjs +0 -2
- package/dist/extensions/pi.cjs.map +0 -1
- package/dist/extensions/pi.d.cts +0 -5
- package/dist/extensions/pi.d.cts.map +0 -1
- package/dist/extensions/pi.d.mts +0 -5
- package/dist/extensions/pi.d.mts.map +0 -1
- package/dist/extensions/pi.mjs +0 -2
- package/dist/extensions/pi.mjs.map +0 -1
- package/dist/extensions/server.cjs +0 -2
- package/dist/extensions/server.cjs.map +0 -1
- package/dist/extensions/server.d.cts +0 -5
- package/dist/extensions/server.d.cts.map +0 -1
- package/dist/extensions/server.d.mts +0 -5
- package/dist/extensions/server.d.mts.map +0 -1
- package/dist/extensions/server.mjs +0 -2
- package/dist/extensions/server.mjs.map +0 -1
- package/dist/index.cjs +0 -0
- package/dist/index.d.cts +0 -2
- package/dist/index.d.mts +0 -2
- package/dist/index.mjs +0 -1
- package/dist/loopLaunchers.cjs +0 -1
- package/dist/loopLaunchers.d.cts +0 -2
- package/dist/loopLaunchers.d.mts +0 -2
- package/dist/loopLaunchers.mjs +0 -1
- package/dist/src/constants/loop.cjs +0 -2
- package/dist/src/constants/loop.cjs.map +0 -1
- package/dist/src/constants/loop.mjs +0 -2
- package/dist/src/constants/loop.mjs.map +0 -1
- package/dist/src/constants/piLoop.cjs +0 -2
- package/dist/src/constants/piLoop.cjs.map +0 -1
- package/dist/src/constants/piLoop.mjs +0 -2
- package/dist/src/constants/piLoop.mjs.map +0 -1
- package/dist/src/controllers/loopCommand.cjs +0 -2
- package/dist/src/controllers/loopCommand.cjs.map +0 -1
- package/dist/src/controllers/loopCommand.mjs +0 -2
- package/dist/src/controllers/loopCommand.mjs.map +0 -1
- package/dist/src/controllers/serverRuntime.cjs +0 -2
- package/dist/src/controllers/serverRuntime.cjs.map +0 -1
- package/dist/src/controllers/serverRuntime.mjs +0 -2
- package/dist/src/controllers/serverRuntime.mjs.map +0 -1
- package/dist/src/schemas/apiContracts.cjs +0 -2
- package/dist/src/schemas/apiContracts.cjs.map +0 -1
- package/dist/src/schemas/apiContracts.d.cts +0 -53
- package/dist/src/schemas/apiContracts.d.cts.map +0 -1
- package/dist/src/schemas/apiContracts.d.mts +0 -53
- package/dist/src/schemas/apiContracts.d.mts.map +0 -1
- package/dist/src/schemas/apiContracts.mjs +0 -2
- package/dist/src/schemas/apiContracts.mjs.map +0 -1
- package/dist/src/schemas/loopLaunchers.cjs +0 -2
- package/dist/src/schemas/loopLaunchers.cjs.map +0 -1
- package/dist/src/schemas/loopLaunchers.d.cts +0 -60
- package/dist/src/schemas/loopLaunchers.d.cts.map +0 -1
- package/dist/src/schemas/loopLaunchers.d.mts +0 -60
- package/dist/src/schemas/loopLaunchers.d.mts.map +0 -1
- package/dist/src/schemas/loopLaunchers.mjs +0 -2
- package/dist/src/schemas/loopLaunchers.mjs.map +0 -1
- package/dist/src/services/defaultLoopLauncher/index.cjs +0 -2
- package/dist/src/services/defaultLoopLauncher/index.cjs.map +0 -1
- package/dist/src/services/defaultLoopLauncher/index.mjs +0 -2
- package/dist/src/services/defaultLoopLauncher/index.mjs.map +0 -1
- package/dist/src/services/loopLaunchers/index.cjs +0 -2
- package/dist/src/services/loopLaunchers/index.cjs.map +0 -1
- package/dist/src/services/loopLaunchers/index.mjs +0 -2
- package/dist/src/services/loopLaunchers/index.mjs.map +0 -1
- package/dist/src/services/loopResource/index.cjs +0 -2
- package/dist/src/services/loopResource/index.cjs.map +0 -1
- package/dist/src/services/loopResource/index.mjs +0 -2
- package/dist/src/services/loopResource/index.mjs.map +0 -1
- package/dist/src/tui/leader.cjs +0 -2
- package/dist/src/tui/leader.cjs.map +0 -1
- package/dist/src/tui/leader.mjs +0 -2
- package/dist/src/tui/leader.mjs.map +0 -1
- package/dist/src/tui/loopListOverlay.cjs +0 -2
- package/dist/src/tui/loopListOverlay.cjs.map +0 -1
- package/dist/src/tui/loopListOverlay.mjs +0 -2
- package/dist/src/tui/loopListOverlay.mjs.map +0 -1
- package/dist/src/tui/loopRuntime.cjs +0 -2
- package/dist/src/tui/loopRuntime.cjs.map +0 -1
- package/dist/src/tui/loopRuntime.mjs +0 -2
- package/dist/src/tui/loopRuntime.mjs.map +0 -1
- package/dist/src/tui/startLoopOverlay.cjs +0 -2
- package/dist/src/tui/startLoopOverlay.cjs.map +0 -1
- package/dist/src/tui/startLoopOverlay.mjs +0 -2
- package/dist/src/tui/startLoopOverlay.mjs.map +0 -1
- package/dist/src/types/loopView.cjs +0 -2
- package/dist/src/types/loopView.cjs.map +0 -1
- package/dist/src/types/loopView.mjs +0 -2
- package/dist/src/types/loopView.mjs.map +0 -1
- package/src/extensions/web.ts +0 -41
- package/src/web/components/LoopsActivitySection.tsx +0 -94
- package/src/web/tsconfig.json +0 -23
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import type { WebPluginSlotProps } from '@agimon-ai/doompi-core/web';
|
|
2
|
-
import { Button, Dot, type DotTone } from '@agimon-ai/doompi-web-components';
|
|
3
|
-
|
|
4
|
-
import { LOOP_VIEW_STATUS_KEY, parseLoopStatusView, type LoopStatusState } from '../../types/loopView';
|
|
5
|
-
|
|
6
|
-
const MANAGE_COMMAND = '/loops';
|
|
7
|
-
const DEFAULT_LOOP_COMMAND = '/loop doompi.default';
|
|
8
|
-
|
|
9
|
-
/** Starts the built-in prompt loop without opening a generic launcher chooser. */
|
|
10
|
-
export function DefaultLoopLauncher({
|
|
11
|
-
sessionId,
|
|
12
|
-
sendSessionFrame,
|
|
13
|
-
}: Pick<WebPluginSlotProps, 'sessionId' | 'sendSessionFrame'>) {
|
|
14
|
-
return (
|
|
15
|
-
<Button
|
|
16
|
-
variant="subtle"
|
|
17
|
-
size="xs"
|
|
18
|
-
data-testid="activity-loop-default-launch"
|
|
19
|
-
aria-label="launch default loop"
|
|
20
|
-
disabled={sessionId === null}
|
|
21
|
-
onClick={() => {
|
|
22
|
-
if (sessionId === null) return;
|
|
23
|
-
sendSessionFrame(sessionId, { type: 'prompt', message: DEFAULT_LOOP_COMMAND });
|
|
24
|
-
}}
|
|
25
|
-
className="text-2xs font-bold"
|
|
26
|
-
>
|
|
27
|
-
default loop
|
|
28
|
-
</Button>
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function toneOf(state: LoopStatusState): DotTone {
|
|
33
|
-
if (state === 'running') return 'green';
|
|
34
|
-
if (state === 'stopping') return 'orange';
|
|
35
|
-
return 'yellow';
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/** Renders active recurring prompts contributed to the Loop activity section. */
|
|
39
|
-
export function LoopActivityItems({ statuses }: Pick<WebPluginSlotProps, 'statuses'>) {
|
|
40
|
-
const raw = statuses[LOOP_VIEW_STATUS_KEY];
|
|
41
|
-
const loops = parseLoopStatusView(raw);
|
|
42
|
-
const unavailable = raw !== undefined && raw.trim() !== '' && loops === undefined;
|
|
43
|
-
if (!loops && !unavailable) return null;
|
|
44
|
-
|
|
45
|
-
return loops ? (
|
|
46
|
-
<ul aria-label="active loops" className="flex flex-col gap-1">
|
|
47
|
-
{loops.map((loop) => (
|
|
48
|
-
<li
|
|
49
|
-
key={loop.instanceId}
|
|
50
|
-
data-testid={`activity-loop-${loop.instanceId}`}
|
|
51
|
-
data-loop-state={loop.state}
|
|
52
|
-
title={`${loop.label}: ${loop.detail}`}
|
|
53
|
-
className="flex min-w-0 flex-col gap-0.5 px-1 py-0.5"
|
|
54
|
-
>
|
|
55
|
-
<span className="flex min-w-0 items-center gap-1.5">
|
|
56
|
-
<Dot tone={toneOf(loop.state)} pulse={loop.state !== 'running'} />
|
|
57
|
-
<span className="min-w-0 flex-1 truncate text-xs font-bold text-doom-hi">{loop.label}</span>
|
|
58
|
-
<span className="shrink-0 text-2xs text-doom-faint">{loop.state}</span>
|
|
59
|
-
</span>
|
|
60
|
-
<span className="truncate pl-3 text-2xs text-doom-faint">{loop.detail}</span>
|
|
61
|
-
</li>
|
|
62
|
-
))}
|
|
63
|
-
</ul>
|
|
64
|
-
) : (
|
|
65
|
-
<p className="px-1 text-xs text-doom-faint">loop status unavailable</p>
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/** Idle-safe Loop activity shell with extension registration and instance slots. */
|
|
70
|
-
export function LoopsActivitySection({ sessionId, renderSlot, sendSessionFrame }: WebPluginSlotProps) {
|
|
71
|
-
return (
|
|
72
|
-
<div data-testid="activity-loop-instances" className="flex flex-col gap-2">
|
|
73
|
-
<div className="flex flex-wrap items-center gap-1">
|
|
74
|
-
<DefaultLoopLauncher sessionId={sessionId} sendSessionFrame={sendSessionFrame} />
|
|
75
|
-
{renderSlot('loop.registration')}
|
|
76
|
-
</div>
|
|
77
|
-
{renderSlot('loop.items')}
|
|
78
|
-
<Button
|
|
79
|
-
variant="subtle"
|
|
80
|
-
size="xs"
|
|
81
|
-
data-testid="activity-loops-manage"
|
|
82
|
-
aria-label="manage loops"
|
|
83
|
-
disabled={sessionId === null}
|
|
84
|
-
onClick={() => {
|
|
85
|
-
if (sessionId === null) return;
|
|
86
|
-
sendSessionFrame(sessionId, { type: 'prompt', message: MANAGE_COMMAND });
|
|
87
|
-
}}
|
|
88
|
-
className="self-end text-2xs font-bold"
|
|
89
|
-
>
|
|
90
|
-
manage
|
|
91
|
-
</Button>
|
|
92
|
-
</div>
|
|
93
|
-
);
|
|
94
|
-
}
|
package/src/web/tsconfig.json
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"lib": ["ES2023", "DOM", "DOM.Iterable"],
|
|
5
|
-
"module": "ESNext",
|
|
6
|
-
"moduleResolution": "Bundler",
|
|
7
|
-
"jsx": "react-jsx",
|
|
8
|
-
"strict": true,
|
|
9
|
-
"noImplicitAny": true,
|
|
10
|
-
"noUnusedLocals": true,
|
|
11
|
-
"noUnusedParameters": true,
|
|
12
|
-
"noImplicitReturns": true,
|
|
13
|
-
"noFallthroughCasesInSwitch": true,
|
|
14
|
-
"noEmit": true,
|
|
15
|
-
"resolveJsonModule": true,
|
|
16
|
-
"esModuleInterop": true,
|
|
17
|
-
"skipLibCheck": true,
|
|
18
|
-
"allowImportingTsExtensions": true,
|
|
19
|
-
"forceConsistentCasingInFileNames": true,
|
|
20
|
-
"types": ["node"]
|
|
21
|
-
},
|
|
22
|
-
"include": [".", "../types", "../extensions/web.ts", "../../tests/web"]
|
|
23
|
-
}
|