@lobu/cli 6.1.1 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/_lib/apply/apply-cmd.d.ts +36 -0
- package/dist/commands/_lib/apply/apply-cmd.d.ts.map +1 -1
- package/dist/commands/_lib/apply/apply-cmd.js +696 -40
- package/dist/commands/_lib/apply/apply-cmd.js.map +1 -1
- package/dist/commands/_lib/apply/client.d.ts +285 -0
- package/dist/commands/_lib/apply/client.d.ts.map +1 -1
- package/dist/commands/_lib/apply/client.js +469 -28
- package/dist/commands/_lib/apply/client.js.map +1 -1
- package/dist/commands/_lib/apply/desired-state.d.ts +187 -3
- package/dist/commands/_lib/apply/desired-state.d.ts.map +1 -1
- package/dist/commands/_lib/apply/desired-state.js +879 -88
- package/dist/commands/_lib/apply/desired-state.js.map +1 -1
- package/dist/commands/_lib/apply/diff.d.ts +72 -3
- package/dist/commands/_lib/apply/diff.d.ts.map +1 -1
- package/dist/commands/_lib/apply/diff.js +473 -84
- package/dist/commands/_lib/apply/diff.js.map +1 -1
- package/dist/commands/_lib/apply/prompt.d.ts +6 -0
- package/dist/commands/_lib/apply/prompt.d.ts.map +1 -1
- package/dist/commands/_lib/apply/prompt.js +16 -0
- package/dist/commands/_lib/apply/prompt.js.map +1 -1
- package/dist/commands/_lib/apply/render.d.ts +9 -0
- package/dist/commands/_lib/apply/render.d.ts.map +1 -1
- package/dist/commands/_lib/apply/render.js +80 -3
- package/dist/commands/_lib/apply/render.js.map +1 -1
- package/dist/commands/_lib/connector-loader.d.ts +3 -0
- package/dist/commands/_lib/connector-loader.d.ts.map +1 -0
- package/dist/commands/_lib/connector-loader.js +129 -0
- package/dist/commands/_lib/connector-loader.js.map +1 -0
- package/dist/commands/_lib/connector-run-cmd.d.ts +35 -0
- package/dist/commands/_lib/connector-run-cmd.d.ts.map +1 -0
- package/dist/commands/_lib/connector-run-cmd.js +351 -0
- package/dist/commands/_lib/connector-run-cmd.js.map +1 -0
- package/dist/commands/_lib/export/export-cmd.d.ts +35 -0
- package/dist/commands/_lib/export/export-cmd.d.ts.map +1 -0
- package/dist/commands/_lib/export/export-cmd.js +329 -0
- package/dist/commands/_lib/export/export-cmd.js.map +1 -0
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +11 -14
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +28 -7
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/connector.d.ts +3 -0
- package/dist/commands/connector.d.ts.map +1 -0
- package/dist/commands/connector.js +5 -0
- package/dist/commands/connector.js.map +1 -0
- package/dist/commands/dev.d.ts +23 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +273 -8
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +2 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/eval.d.ts.map +1 -1
- package/dist/commands/eval.js +28 -18
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +29 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +22 -16
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/memory/_lib/browser-auth-cmd.d.ts.map +1 -1
- package/dist/commands/memory/_lib/browser-auth-cmd.js +15 -144
- package/dist/commands/memory/_lib/browser-auth-cmd.js.map +1 -1
- package/dist/commands/memory/_lib/schema.d.ts +28 -1
- package/dist/commands/memory/_lib/schema.d.ts.map +1 -1
- package/dist/commands/memory/_lib/schema.js +120 -4
- package/dist/commands/memory/_lib/schema.js.map +1 -1
- package/dist/commands/memory/_lib/seed-cmd.d.ts.map +1 -1
- package/dist/commands/memory/_lib/seed-cmd.js +41 -18
- package/dist/commands/memory/_lib/seed-cmd.js.map +1 -1
- package/dist/commands/org.d.ts +4 -0
- package/dist/commands/org.d.ts.map +1 -1
- package/dist/commands/org.js +10 -0
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/token.d.ts +9 -0
- package/dist/commands/token.d.ts.map +1 -1
- package/dist/commands/token.js +54 -3
- package/dist/commands/token.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +4 -13
- package/dist/commands/validate.js.map +1 -1
- package/dist/config/loader.js +2 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/connectors/README.md +2 -3
- package/dist/connectors/apple_health.ts +138 -0
- package/dist/connectors/apple_photos.ts +178 -0
- package/dist/connectors/apple_screen_time.ts +82 -0
- package/dist/connectors/browser/evaluate.ts +120 -0
- package/dist/connectors/browser/fill_form.ts +107 -0
- package/dist/connectors/browser/page_text.ts +108 -0
- package/dist/connectors/browser-scraper-utils.ts +111 -3
- package/dist/connectors/capterra.ts +5 -1
- package/dist/connectors/chrome_tabs.ts +74 -0
- package/dist/connectors/g2.ts +5 -1
- package/dist/connectors/github.ts +16 -38
- package/dist/connectors/glassdoor.ts +5 -1
- package/dist/connectors/google_calendar.ts +28 -6
- package/dist/connectors/google_gmail.ts +6 -3
- package/dist/connectors/google_play.ts +32 -5
- package/dist/connectors/hackernews.ts +37 -2
- package/dist/connectors/index.ts +14 -1
- package/dist/connectors/linkedin.ts +32 -9
- package/dist/connectors/local_directory.ts +91 -0
- package/dist/connectors/reddit.ts +1 -0
- package/dist/connectors/revolut.ts +569 -0
- package/dist/connectors/rss.ts +33 -8
- package/dist/connectors/trustpilot.ts +36 -21
- package/dist/connectors/website.ts +8 -69
- package/dist/connectors/whatsapp.ts +21 -22
- package/dist/connectors/whatsapp_local.ts +125 -0
- package/dist/connectors/x.ts +17 -7
- package/dist/db/migrations/20260510220000_connector_required_capability.sql +47 -0
- package/dist/db/migrations/20260512000000_device_worker_connection_binding.sql +113 -0
- package/dist/db/migrations/20260512131703_connections_slug.sql +131 -0
- package/dist/db/migrations/20260513000000_chat_user_identities.sql +24 -0
- package/dist/db/migrations/20260513120000_auth_profiles_device_binding.sql +50 -0
- package/dist/db/migrations/20260513150000_auth_profiles_cdp_url.sql +43 -0
- package/dist/db/migrations/20260513200000_notifications_as_events.sql +86 -0
- package/dist/db/migrations/20260514000000_scheduled_jobs.sql +97 -0
- package/dist/db/migrations/20260514120000_auth_profiles_connector_key_nullable.sql +42 -0
- package/dist/db/migrations/20260514130000_connection_action_modes.sql +103 -0
- package/dist/db/migrations/20260514160000_auth_profiles_mirror_mode.sql +32 -0
- package/dist/db/migrations/20260515120000_agents_per_org_pk.sql +66 -0
- package/dist/db/migrations/20260515150000_geo_enrichment.sql +208 -0
- package/dist/db/migrations/20260515160000_drop_agents_org_id_unique.sql +24 -0
- package/dist/db/migrations/20260515170000_auth_profiles_default_for_connector.sql +23 -0
- package/dist/db/migrations/20260516120000_agents_per_org_pk_swap.sql +125 -0
- package/dist/db/migrations/20260516200000_events_search_tsv.sql +134 -0
- package/dist/db/migrations/20260516200100_events_lifecycle_changes_index.sql +25 -0
- package/dist/db/migrations/20260517010000_drop_unused_indexes.sql +49 -0
- package/dist/db/migrations/20260517020000_softdelete_orphan_feeds.sql +56 -0
- package/dist/db/migrations/20260517030000_pat_worker_id_binding.sql +27 -0
- package/dist/db/migrations/20260517040000_archive_orphan_watchers.sql +30 -0
- package/dist/db/migrations/20260517050000_watcher_agent_id_not_null.sql +34 -0
- package/dist/db/migrations/20260517060000_watcher_schema_additions.sql +78 -0
- package/dist/db/migrations/20260517150000_goals_primitive.sql +55 -0
- package/dist/db/migrations/20260517160000_drop_goals_primitive.sql +45 -0
- package/dist/db/migrations/20260518000000_pending_interactions.sql +49 -0
- package/dist/db/migrations/20260518010000_runs_heartbeat_reaper_index.sql +22 -0
- package/dist/eval/client.d.ts.map +1 -1
- package/dist/eval/client.js +11 -0
- package/dist/eval/client.js.map +1 -1
- package/dist/eval/grader.js +2 -1
- package/dist/eval/grader.js.map +1 -1
- package/dist/eval/types.d.ts +2 -0
- package/dist/eval/types.d.ts.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +115 -114
- package/dist/index.js.map +1 -1
- package/dist/internal/context.d.ts +9 -0
- package/dist/internal/context.d.ts.map +1 -1
- package/dist/internal/context.js +41 -6
- package/dist/internal/context.js.map +1 -1
- package/dist/internal/credentials.d.ts +5 -0
- package/dist/internal/credentials.d.ts.map +1 -1
- package/dist/internal/credentials.js +75 -1
- package/dist/internal/credentials.js.map +1 -1
- package/dist/internal/gateway-url.d.ts +14 -0
- package/dist/internal/gateway-url.d.ts.map +1 -1
- package/dist/internal/gateway-url.js +19 -0
- package/dist/internal/gateway-url.js.map +1 -1
- package/dist/internal/index.d.ts +1 -1
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/local-env.d.ts.map +1 -1
- package/dist/internal/local-env.js +9 -2
- package/dist/internal/local-env.js.map +1 -1
- package/dist/server.bundle.mjs +42251 -36931
- package/dist/start-local.bundle.mjs +16437 -9882
- package/dist/templates/TESTING.md.tmpl +9 -9
- package/package.json +8 -6
- package/dist/connectors/google_photos.ts +0 -776
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-- migrate:up
|
|
2
|
+
|
|
3
|
+
-- Bind PATs minted via /api/me/devices/mint-child-token to a specific
|
|
4
|
+
-- worker_id. Without this, a chrome-extension child PAT could post any
|
|
5
|
+
-- worker_id at /api/workers/poll and register a new device_workers row
|
|
6
|
+
-- under a different platform, bypassing the gateway's capability
|
|
7
|
+
-- authorization. The poll handler now refuses a request whose body's
|
|
8
|
+
-- `worker_id` doesn't match the PAT's bound `worker_id` (when non-NULL).
|
|
9
|
+
--
|
|
10
|
+
-- Legacy PATs (CLI tokens, OAuth-issued bearers via dynamic client
|
|
11
|
+
-- registration on the Mac/iOS bridges) keep worker_id = NULL; the poll
|
|
12
|
+
-- handler treats NULL as "no binding" and lets the body's value pass.
|
|
13
|
+
|
|
14
|
+
ALTER TABLE public.personal_access_tokens
|
|
15
|
+
ADD COLUMN IF NOT EXISTS worker_id text;
|
|
16
|
+
|
|
17
|
+
CREATE INDEX IF NOT EXISTS idx_personal_access_tokens_worker_id
|
|
18
|
+
ON public.personal_access_tokens (worker_id)
|
|
19
|
+
WHERE worker_id IS NOT NULL;
|
|
20
|
+
|
|
21
|
+
COMMENT ON COLUMN public.personal_access_tokens.worker_id IS
|
|
22
|
+
'Optional binding to a specific device_workers.worker_id. Set by /api/me/devices/mint-child-token. When non-NULL, /api/workers/poll requires the request body''s worker_id to match.';
|
|
23
|
+
|
|
24
|
+
-- migrate:down
|
|
25
|
+
|
|
26
|
+
DROP INDEX IF EXISTS public.idx_personal_access_tokens_worker_id;
|
|
27
|
+
ALTER TABLE public.personal_access_tokens DROP COLUMN IF EXISTS worker_id;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
-- migrate:up
|
|
2
|
+
|
|
3
|
+
-- Archive watchers that are flagged `status = 'active'` but have no `agent_id`.
|
|
4
|
+
-- The scheduler (packages/server/src/watchers/automation.ts:469) already
|
|
5
|
+
-- filters them out with `WHERE w.agent_id IS NOT NULL`, so these rows are
|
|
6
|
+
-- zombies — visible in the API, redirect-bounced on the watcher detail
|
|
7
|
+
-- route, never actually executing.
|
|
8
|
+
--
|
|
9
|
+
-- 2026-05-17 prod audit: 28 active orphans across 11 orgs (most originated
|
|
10
|
+
-- from older create paths before `agent_id` was wired in). Archiving them
|
|
11
|
+
-- aligns the stored status with their actual execution state and lets the
|
|
12
|
+
-- `/$owner/watchers/$watcherId` redirect logic stop silently sending users
|
|
13
|
+
-- to /agents.
|
|
14
|
+
--
|
|
15
|
+
-- The write-time guard (this same PR, manage_watchers.ts) rejects new
|
|
16
|
+
-- watcher creates/updates that set a schedule without an agent, so the
|
|
17
|
+
-- orphan set can't grow again.
|
|
18
|
+
|
|
19
|
+
UPDATE public.watchers
|
|
20
|
+
SET status = 'archived',
|
|
21
|
+
updated_at = now()
|
|
22
|
+
WHERE status = 'active'
|
|
23
|
+
AND agent_id IS NULL;
|
|
24
|
+
|
|
25
|
+
-- migrate:down
|
|
26
|
+
|
|
27
|
+
-- No-op: this is a one-shot data cleanup. The original rows can be restored
|
|
28
|
+
-- manually if needed by assigning an agent_id and flipping status back to
|
|
29
|
+
-- 'active'; without an agent, status='active' is meaningless to the
|
|
30
|
+
-- scheduler.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-- migrate:up
|
|
2
|
+
|
|
3
|
+
-- Delete every watcher with `agent_id IS NULL` and enforce the column at
|
|
4
|
+
-- the schema level. These rows are leftovers from before the watcher
|
|
5
|
+
-- scheduler required `agent_id` (see watchers/automation.ts:469) — they
|
|
6
|
+
-- couldn't fire and the prior migration 20260517040000 had already
|
|
7
|
+
-- archived the active subset. Their dependent rows (windows, reactions,
|
|
8
|
+
-- versions, classifiers, field feedback) describe runtime state for
|
|
9
|
+
-- watchers that will never execute; ON DELETE CASCADE clears them.
|
|
10
|
+
-- `runs.watcher_id` is ON DELETE SET NULL, so the 21k historical run
|
|
11
|
+
-- records remain — they just lose the watcher linkage.
|
|
12
|
+
--
|
|
13
|
+
-- Application-level guards in manage_watchers.ts (handleCreate +
|
|
14
|
+
-- handleCreateFromVersion) reject new inserts without `agent_id`; the
|
|
15
|
+
-- NOT NULL constraint below is the matching DB-level enforcement so
|
|
16
|
+
-- bypass paths can't reintroduce the zombie state.
|
|
17
|
+
|
|
18
|
+
DELETE FROM public.watchers WHERE agent_id IS NULL;
|
|
19
|
+
|
|
20
|
+
ALTER TABLE public.watchers
|
|
21
|
+
ALTER COLUMN agent_id SET NOT NULL;
|
|
22
|
+
|
|
23
|
+
-- The existing index is partial (`WHERE agent_id IS NOT NULL`), which is
|
|
24
|
+
-- a tautology once the column is NOT NULL. Replace it with an unconditional
|
|
25
|
+
-- index so explain plans don't show the dead predicate.
|
|
26
|
+
DROP INDEX IF EXISTS public.idx_watchers_agent_id;
|
|
27
|
+
CREATE INDEX idx_watchers_agent_id ON public.watchers USING btree (agent_id);
|
|
28
|
+
|
|
29
|
+
-- migrate:down
|
|
30
|
+
|
|
31
|
+
ALTER TABLE public.watchers
|
|
32
|
+
ALTER COLUMN agent_id DROP NOT NULL;
|
|
33
|
+
|
|
34
|
+
-- No restoring deleted rows — this is forward-only data cleanup.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
-- migrate:up
|
|
2
|
+
|
|
3
|
+
-- Adds the columns needed by the device-aware watcher dispatcher (see
|
|
4
|
+
-- lobu-ai/lobu#798 / #799):
|
|
5
|
+
--
|
|
6
|
+
-- * device_worker_id — pin a watcher to a specific device worker
|
|
7
|
+
-- (when its inputs live on that device).
|
|
8
|
+
-- * agent_kind — overrides the owning agent's default kind for
|
|
9
|
+
-- this watcher (e.g. "background", "notifier").
|
|
10
|
+
-- * notification_channel — where firings surface: canvas, OS notification,
|
|
11
|
+
-- or both.
|
|
12
|
+
-- * notification_priority — priority class used by the dispatcher's
|
|
13
|
+
-- interrupt budget.
|
|
14
|
+
-- * min_cooldown_seconds — minimum seconds between two firings of the
|
|
15
|
+
-- same watcher (0 = no cooldown).
|
|
16
|
+
-- * last_fired_at — last time this watcher actually dispatched
|
|
17
|
+
-- a notification/canvas item.
|
|
18
|
+
--
|
|
19
|
+
-- Also adds device_workers.notification_budget_per_day for the per-device
|
|
20
|
+
-- global interrupt budget. 10/day is a placeholder default; tune later.
|
|
21
|
+
|
|
22
|
+
ALTER TABLE public.watchers
|
|
23
|
+
ADD COLUMN device_worker_id uuid REFERENCES public.device_workers(id),
|
|
24
|
+
ADD COLUMN agent_kind text,
|
|
25
|
+
ADD COLUMN notification_channel text NOT NULL DEFAULT 'canvas',
|
|
26
|
+
ADD COLUMN notification_priority text NOT NULL DEFAULT 'normal',
|
|
27
|
+
ADD COLUMN min_cooldown_seconds integer NOT NULL DEFAULT 0,
|
|
28
|
+
ADD COLUMN last_fired_at timestamp with time zone;
|
|
29
|
+
|
|
30
|
+
ALTER TABLE public.watchers
|
|
31
|
+
ADD CONSTRAINT watchers_notification_channel_check
|
|
32
|
+
CHECK (notification_channel IN ('canvas', 'notification', 'both'));
|
|
33
|
+
|
|
34
|
+
ALTER TABLE public.watchers
|
|
35
|
+
ADD CONSTRAINT watchers_notification_priority_check
|
|
36
|
+
CHECK (notification_priority IN ('low', 'normal', 'high'));
|
|
37
|
+
|
|
38
|
+
ALTER TABLE public.watchers
|
|
39
|
+
ADD CONSTRAINT watchers_min_cooldown_seconds_nonneg
|
|
40
|
+
CHECK (min_cooldown_seconds >= 0);
|
|
41
|
+
|
|
42
|
+
CREATE INDEX IF NOT EXISTS idx_watchers_device_worker_id
|
|
43
|
+
ON public.watchers (device_worker_id)
|
|
44
|
+
WHERE device_worker_id IS NOT NULL;
|
|
45
|
+
|
|
46
|
+
ALTER TABLE public.device_workers
|
|
47
|
+
ADD COLUMN notification_budget_per_day integer NOT NULL DEFAULT 10;
|
|
48
|
+
|
|
49
|
+
ALTER TABLE public.device_workers
|
|
50
|
+
ADD CONSTRAINT device_workers_notification_budget_per_day_nonneg
|
|
51
|
+
CHECK (notification_budget_per_day >= 0);
|
|
52
|
+
|
|
53
|
+
-- migrate:down
|
|
54
|
+
|
|
55
|
+
ALTER TABLE public.device_workers
|
|
56
|
+
DROP CONSTRAINT IF EXISTS device_workers_notification_budget_per_day_nonneg;
|
|
57
|
+
|
|
58
|
+
ALTER TABLE public.device_workers
|
|
59
|
+
DROP COLUMN IF EXISTS notification_budget_per_day;
|
|
60
|
+
|
|
61
|
+
DROP INDEX IF EXISTS public.idx_watchers_device_worker_id;
|
|
62
|
+
|
|
63
|
+
ALTER TABLE public.watchers
|
|
64
|
+
DROP CONSTRAINT IF EXISTS watchers_min_cooldown_seconds_nonneg;
|
|
65
|
+
|
|
66
|
+
ALTER TABLE public.watchers
|
|
67
|
+
DROP CONSTRAINT IF EXISTS watchers_notification_priority_check;
|
|
68
|
+
|
|
69
|
+
ALTER TABLE public.watchers
|
|
70
|
+
DROP CONSTRAINT IF EXISTS watchers_notification_channel_check;
|
|
71
|
+
|
|
72
|
+
ALTER TABLE public.watchers
|
|
73
|
+
DROP COLUMN IF EXISTS last_fired_at,
|
|
74
|
+
DROP COLUMN IF EXISTS min_cooldown_seconds,
|
|
75
|
+
DROP COLUMN IF EXISTS notification_priority,
|
|
76
|
+
DROP COLUMN IF EXISTS notification_channel,
|
|
77
|
+
DROP COLUMN IF EXISTS agent_kind,
|
|
78
|
+
DROP COLUMN IF EXISTS device_worker_id;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
-- migrate:up
|
|
2
|
+
|
|
3
|
+
-- Goals primitive — a top-level handle that groups watchers under a single
|
|
4
|
+
-- user-facing intent (e.g. "Keep my CRM clean", "Watch competitors"). Each
|
|
5
|
+
-- watcher may optionally point at a goal; goals are the surface the
|
|
6
|
+
-- canvas/UI (#801) hangs off, while watchers stay the executable unit.
|
|
7
|
+
--
|
|
8
|
+
-- Schema notes:
|
|
9
|
+
-- - organization_id is `text` (the better-auth `organization.id`) to match
|
|
10
|
+
-- the rest of the schema; the issue body called it `integer`, but every
|
|
11
|
+
-- other org-scoped table (watchers, feeds, connections, …) uses text.
|
|
12
|
+
-- - `(organization_id, slug)` is unique so `lobu apply` can upsert by slug
|
|
13
|
+
-- the same way it does for watchers/agents.
|
|
14
|
+
-- - Goal-template loading from YAML is out of scope here; `template_key`
|
|
15
|
+
-- is just a free-form pointer for the future loader to claim.
|
|
16
|
+
-- - `metadata` is jsonb for forward-compat (icon, color, owner, etc.)
|
|
17
|
+
-- without another migration each time the UI grows a knob.
|
|
18
|
+
|
|
19
|
+
CREATE TABLE public.goals (
|
|
20
|
+
id bigserial PRIMARY KEY,
|
|
21
|
+
organization_id text NOT NULL REFERENCES public.organization(id) ON DELETE CASCADE,
|
|
22
|
+
slug text NOT NULL,
|
|
23
|
+
name text NOT NULL,
|
|
24
|
+
description text,
|
|
25
|
+
status text NOT NULL DEFAULT 'active',
|
|
26
|
+
template_key text,
|
|
27
|
+
metadata jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
28
|
+
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
29
|
+
updated_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
30
|
+
|
|
31
|
+
CONSTRAINT goals_status_check
|
|
32
|
+
CHECK (status IN ('active', 'paused', 'archived')),
|
|
33
|
+
CONSTRAINT goals_org_slug_unique
|
|
34
|
+
UNIQUE (organization_id, slug)
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
CREATE INDEX idx_goals_organization_id
|
|
38
|
+
ON public.goals (organization_id);
|
|
39
|
+
|
|
40
|
+
-- Watcher → goal link. NULL means "ungrouped" (today's behavior). ON DELETE
|
|
41
|
+
-- SET NULL keeps the watcher alive when its goal is archived/deleted; the
|
|
42
|
+
-- watcher just becomes ungrouped.
|
|
43
|
+
ALTER TABLE public.watchers
|
|
44
|
+
ADD COLUMN goal_id bigint REFERENCES public.goals(id) ON DELETE SET NULL;
|
|
45
|
+
|
|
46
|
+
CREATE INDEX idx_watchers_goal_id
|
|
47
|
+
ON public.watchers (goal_id)
|
|
48
|
+
WHERE goal_id IS NOT NULL;
|
|
49
|
+
|
|
50
|
+
-- migrate:down
|
|
51
|
+
|
|
52
|
+
ALTER TABLE public.watchers
|
|
53
|
+
DROP COLUMN IF EXISTS goal_id;
|
|
54
|
+
|
|
55
|
+
DROP TABLE IF EXISTS public.goals;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
-- migrate:up
|
|
2
|
+
|
|
3
|
+
-- Revert the goals primitive added in 20260517150000_goals_primitive.sql.
|
|
4
|
+
-- Agents already encapsulate the watcher-grouping use case via
|
|
5
|
+
-- watchers.agent_id; goals were a redundant nullable FK + parallel CRUD with
|
|
6
|
+
-- zero behavioral value. The primitive never shipped in a release.
|
|
7
|
+
|
|
8
|
+
DROP INDEX IF EXISTS idx_watchers_goal_id;
|
|
9
|
+
|
|
10
|
+
ALTER TABLE public.watchers
|
|
11
|
+
DROP COLUMN IF EXISTS goal_id;
|
|
12
|
+
|
|
13
|
+
DROP INDEX IF EXISTS idx_goals_organization_id;
|
|
14
|
+
|
|
15
|
+
DROP TABLE IF EXISTS public.goals;
|
|
16
|
+
|
|
17
|
+
-- migrate:down
|
|
18
|
+
|
|
19
|
+
CREATE TABLE public.goals (
|
|
20
|
+
id bigserial PRIMARY KEY,
|
|
21
|
+
organization_id text NOT NULL REFERENCES public.organization(id) ON DELETE CASCADE,
|
|
22
|
+
slug text NOT NULL,
|
|
23
|
+
name text NOT NULL,
|
|
24
|
+
description text,
|
|
25
|
+
status text NOT NULL DEFAULT 'active',
|
|
26
|
+
template_key text,
|
|
27
|
+
metadata jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
28
|
+
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
29
|
+
updated_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
30
|
+
|
|
31
|
+
CONSTRAINT goals_status_check
|
|
32
|
+
CHECK (status IN ('active', 'paused', 'archived')),
|
|
33
|
+
CONSTRAINT goals_org_slug_unique
|
|
34
|
+
UNIQUE (organization_id, slug)
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
CREATE INDEX idx_goals_organization_id
|
|
38
|
+
ON public.goals (organization_id);
|
|
39
|
+
|
|
40
|
+
ALTER TABLE public.watchers
|
|
41
|
+
ADD COLUMN goal_id bigint REFERENCES public.goals(id) ON DELETE SET NULL;
|
|
42
|
+
|
|
43
|
+
CREATE INDEX idx_watchers_goal_id
|
|
44
|
+
ON public.watchers (goal_id)
|
|
45
|
+
WHERE goal_id IS NOT NULL;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
-- migrate:up
|
|
2
|
+
|
|
3
|
+
-- Per-question state for the chat-interaction bridge — moved out of the
|
|
4
|
+
-- gateway's in-process Map so a button click that lands on pod B can claim
|
|
5
|
+
-- a question registered on pod A. The bridge keeps a small per-pod cache for
|
|
6
|
+
-- the platform `SentMessage` (used to edit the original card on click) since
|
|
7
|
+
-- that's a non-serializable SDK handle; everything that matters for routing
|
|
8
|
+
-- the click back into the worker (PostedQuestion + connection context) lives
|
|
9
|
+
-- here.
|
|
10
|
+
--
|
|
11
|
+
-- The claim path scopes by `(id, organization_id, connection_id,
|
|
12
|
+
-- expected_user_id)` — keying by `id` alone would let a click from one
|
|
13
|
+
-- connection or one user consume a question registered for another. The
|
|
14
|
+
-- columns are NOT NULL so the SQL claim is a single index hit with no
|
|
15
|
+
-- branching for NULL semantics.
|
|
16
|
+
|
|
17
|
+
CREATE TABLE public.pending_interactions (
|
|
18
|
+
id text PRIMARY KEY,
|
|
19
|
+
organization_id text NOT NULL REFERENCES public.organization(id) ON DELETE CASCADE,
|
|
20
|
+
connection_id text NOT NULL,
|
|
21
|
+
expected_user_id text NOT NULL,
|
|
22
|
+
entry_payload jsonb NOT NULL,
|
|
23
|
+
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
24
|
+
claimed_at timestamp with time zone
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
-- Claim path is
|
|
28
|
+
-- UPDATE pending_interactions
|
|
29
|
+
-- SET claimed_at = now()
|
|
30
|
+
-- WHERE id = $1
|
|
31
|
+
-- AND organization_id = $2
|
|
32
|
+
-- AND connection_id = $3
|
|
33
|
+
-- AND expected_user_id = $4
|
|
34
|
+
-- AND claimed_at IS NULL
|
|
35
|
+
-- RETURNING entry_payload
|
|
36
|
+
-- — a partial index on the unclaimed predicate keeps the lookup index-only.
|
|
37
|
+
CREATE INDEX idx_pending_interactions_unclaimed
|
|
38
|
+
ON public.pending_interactions (id, organization_id, connection_id, expected_user_id)
|
|
39
|
+
WHERE claimed_at IS NULL;
|
|
40
|
+
|
|
41
|
+
-- Background sweeper drops rows older than 24h; index keeps that scan cheap.
|
|
42
|
+
CREATE INDEX idx_pending_interactions_created_at
|
|
43
|
+
ON public.pending_interactions (created_at);
|
|
44
|
+
|
|
45
|
+
-- migrate:down
|
|
46
|
+
|
|
47
|
+
DROP INDEX IF EXISTS public.idx_pending_interactions_created_at;
|
|
48
|
+
DROP INDEX IF EXISTS public.idx_pending_interactions_unclaimed;
|
|
49
|
+
DROP TABLE IF EXISTS public.pending_interactions;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
-- migrate:up
|
|
2
|
+
|
|
3
|
+
-- Partial index supporting the connector-lane stale-run reaper. The sweeper
|
|
4
|
+
-- query in reapStaleRuns() (packages/server/src/scheduled/check-stalled-executions.ts)
|
|
5
|
+
-- filters runs in the in-progress states (`claimed`, `running`) whose
|
|
6
|
+
-- `last_heartbeat_at` is older than the configured threshold. Without this
|
|
7
|
+
-- index every reaper tick does a full scan of `runs`.
|
|
8
|
+
--
|
|
9
|
+
-- Restricted to the connector lanes (sync, action, embed_backfill, auth). The
|
|
10
|
+
-- lobu-queue lanes (chat_message, schedule, agent_run, internal, task) have
|
|
11
|
+
-- their own per-claim sweep inside RunsQueue keyed on `claimed_at`, not
|
|
12
|
+
-- `last_heartbeat_at`. The `watcher` lane has a dedicated 2h-TTL sweep in
|
|
13
|
+
-- watchers/automation.ts.
|
|
14
|
+
|
|
15
|
+
CREATE INDEX IF NOT EXISTS idx_runs_heartbeat_inflight
|
|
16
|
+
ON public.runs (last_heartbeat_at)
|
|
17
|
+
WHERE status IN ('claimed', 'running')
|
|
18
|
+
AND run_type IN ('sync', 'action', 'embed_backfill', 'auth');
|
|
19
|
+
|
|
20
|
+
-- migrate:down
|
|
21
|
+
|
|
22
|
+
DROP INDEX IF EXISTS public.idx_runs_heartbeat_inflight;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/eval/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,OAAO,CAAC,CA8BlB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/eval/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,OAAO,CAAC,CA8BlB;AAiJD,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnE;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAK5B"}
|
package/dist/eval/client.js
CHANGED
|
@@ -64,6 +64,11 @@ async function collectResponse(session, timeoutMs, messageId) {
|
|
|
64
64
|
const controller = new AbortController();
|
|
65
65
|
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
66
66
|
const start = Date.now();
|
|
67
|
+
// Tracked across the try/finally so we can cancel the body stream on early
|
|
68
|
+
// return. Without this, `return` inside the loop leaves the reader holding
|
|
69
|
+
// the lock and the underlying SSE connection open until the GC closes it
|
|
70
|
+
// — which manifests as test-process hangs and dangling fetches under load.
|
|
71
|
+
let readerForCleanup;
|
|
67
72
|
try {
|
|
68
73
|
const res = await fetch(`${session.base}/events`, {
|
|
69
74
|
headers: { Authorization: `Bearer ${session.token}` },
|
|
@@ -73,6 +78,7 @@ async function collectResponse(session, timeoutMs, messageId) {
|
|
|
73
78
|
throw new Error(`SSE connection failed (${res.status})`);
|
|
74
79
|
}
|
|
75
80
|
const reader = res.body.getReader();
|
|
81
|
+
readerForCleanup = reader;
|
|
76
82
|
const decoder = new TextDecoder();
|
|
77
83
|
let buffer = "";
|
|
78
84
|
let currentEvent = "";
|
|
@@ -147,6 +153,11 @@ async function collectResponse(session, timeoutMs, messageId) {
|
|
|
147
153
|
}
|
|
148
154
|
finally {
|
|
149
155
|
clearTimeout(timer);
|
|
156
|
+
if (readerForCleanup) {
|
|
157
|
+
// Cancel the body stream so the underlying connection is released
|
|
158
|
+
// immediately on early return — otherwise the lock stays held until GC.
|
|
159
|
+
await readerForCleanup.cancel().catch(() => undefined);
|
|
160
|
+
}
|
|
150
161
|
}
|
|
151
162
|
}
|
|
152
163
|
export async function deleteSession(session) {
|
package/dist/eval/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/eval/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/eval/client.ts"],"names":[],"mappings":"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"}
|
package/dist/eval/grader.js
CHANGED
|
@@ -109,9 +109,10 @@ function parseInlineResponse(response) {
|
|
|
109
109
|
try {
|
|
110
110
|
const json = extractJSON(response.text);
|
|
111
111
|
const parsed = JSON.parse(json);
|
|
112
|
+
const fallbackScore = parsed.passed ? 1 : 0;
|
|
112
113
|
return {
|
|
113
114
|
passed: Boolean(parsed.passed),
|
|
114
|
-
score: typeof parsed.score === "number" ? parsed.score :
|
|
115
|
+
score: typeof parsed.score === "number" ? parsed.score : fallbackScore,
|
|
115
116
|
reason: String(parsed.reason ?? ""),
|
|
116
117
|
};
|
|
117
118
|
}
|
package/dist/eval/grader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grader.js","sourceRoot":"","sources":["../../src/eval/grader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"grader.js","sourceRoot":"","sources":["../../src/eval/grader.ts"],"names":[],"mappings":"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"}
|
package/dist/eval/types.d.ts
CHANGED
|
@@ -84,6 +84,8 @@ export interface EvalResult {
|
|
|
84
84
|
p50LatencyMs: number;
|
|
85
85
|
totalTokens: TokenUsage;
|
|
86
86
|
trials: TrialResult[];
|
|
87
|
+
/** Set when the eval crashed before producing trials — counts as a failure. */
|
|
88
|
+
error?: string;
|
|
87
89
|
}
|
|
88
90
|
export interface EvalReport {
|
|
89
91
|
agent: string;
|
package/dist/eval/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/eval/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,eAAe;;;;;;;;;;;iBAUnB,CAAC;AAOH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAc/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/eval/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,eAAe;;;;;;;;;;;iBAUnB,CAAC;AAOH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAc/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options shared by most cloud subcommands. `--context` is always present;
|
|
3
|
+
* `--org` / `--json` are opt-in. Descriptions here are the canonical ones —
|
|
4
|
+
* commands needing a different wording (e.g. "Org slug override (defaults to
|
|
5
|
+
* [memory].org)") keep their own explicit `.option(...)` call.
|
|
6
|
+
*/
|
|
7
|
+
export interface CommonActionOpts {
|
|
8
|
+
context?: string;
|
|
9
|
+
org?: string;
|
|
10
|
+
json?: boolean;
|
|
11
|
+
}
|
|
1
12
|
export declare function runCli(argv?: readonly string[]): Promise<void>;
|
|
2
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAyBD,wBAAsB,MAAM,CAC1B,IAAI,GAAE,SAAS,MAAM,EAAiB,GACrC,OAAO,CAAC,IAAI,CAAC,CAm+Bf"}
|