opencode-flema-engram-sidebar 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +472 -0
- package/dist/adapters/cloud.d.ts +18 -0
- package/dist/adapters/cloud.d.ts.map +1 -0
- package/dist/adapters/cloud.js +53 -0
- package/dist/adapters/cloud.js.map +1 -0
- package/dist/adapters/composite.d.ts +20 -0
- package/dist/adapters/composite.d.ts.map +1 -0
- package/dist/adapters/composite.js +83 -0
- package/dist/adapters/composite.js.map +1 -0
- package/dist/adapters/local.d.ts +15 -0
- package/dist/adapters/local.d.ts.map +1 -0
- package/dist/adapters/local.js +178 -0
- package/dist/adapters/local.js.map +1 -0
- package/dist/adapters/types.d.ts +68 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/errors.d.ts +5 -0
- package/dist/mcp/errors.d.ts.map +1 -0
- package/dist/mcp/errors.js +22 -0
- package/dist/mcp/errors.js.map +1 -0
- package/dist/mcp/resources/engram-change-artifacts.d.ts +11 -0
- package/dist/mcp/resources/engram-change-artifacts.d.ts.map +1 -0
- package/dist/mcp/resources/engram-change-artifacts.js +24 -0
- package/dist/mcp/resources/engram-change-artifacts.js.map +1 -0
- package/dist/mcp/resources/engram-change-state.d.ts +11 -0
- package/dist/mcp/resources/engram-change-state.d.ts.map +1 -0
- package/dist/mcp/resources/engram-change-state.js +27 -0
- package/dist/mcp/resources/engram-change-state.js.map +1 -0
- package/dist/mcp/resources/engram-changes.d.ts +9 -0
- package/dist/mcp/resources/engram-changes.d.ts.map +1 -0
- package/dist/mcp/resources/engram-changes.js +17 -0
- package/dist/mcp/resources/engram-changes.js.map +1 -0
- package/dist/mcp/resources/engram-health.d.ts +9 -0
- package/dist/mcp/resources/engram-health.d.ts.map +1 -0
- package/dist/mcp/resources/engram-health.js +13 -0
- package/dist/mcp/resources/engram-health.js.map +1 -0
- package/dist/mcp/resources/engram-observation.d.ts +11 -0
- package/dist/mcp/resources/engram-observation.d.ts.map +1 -0
- package/dist/mcp/resources/engram-observation.js +18 -0
- package/dist/mcp/resources/engram-observation.js.map +1 -0
- package/dist/mcp/resources/engram-project.d.ts +11 -0
- package/dist/mcp/resources/engram-project.d.ts.map +1 -0
- package/dist/mcp/resources/engram-project.js +47 -0
- package/dist/mcp/resources/engram-project.js.map +1 -0
- package/dist/mcp/resources/engram-projects.d.ts +9 -0
- package/dist/mcp/resources/engram-projects.d.ts.map +1 -0
- package/dist/mcp/resources/engram-projects.js +13 -0
- package/dist/mcp/resources/engram-projects.js.map +1 -0
- package/dist/mcp/resources/engram-session.d.ts +11 -0
- package/dist/mcp/resources/engram-session.d.ts.map +1 -0
- package/dist/mcp/resources/engram-session.js +18 -0
- package/dist/mcp/resources/engram-session.js.map +1 -0
- package/dist/mcp/server.d.ts +19 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +104 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/get-observation.d.ts +16 -0
- package/dist/mcp/tools/get-observation.d.ts.map +1 -0
- package/dist/mcp/tools/get-observation.js +21 -0
- package/dist/mcp/tools/get-observation.js.map +1 -0
- package/dist/mcp/tools/get-project-state.d.ts +16 -0
- package/dist/mcp/tools/get-project-state.d.ts.map +1 -0
- package/dist/mcp/tools/get-project-state.js +63 -0
- package/dist/mcp/tools/get-project-state.js.map +1 -0
- package/dist/mcp/tools/get-session.d.ts +16 -0
- package/dist/mcp/tools/get-session.d.ts.map +1 -0
- package/dist/mcp/tools/get-session.js +21 -0
- package/dist/mcp/tools/get-session.js.map +1 -0
- package/dist/mcp/tools/list-observations.d.ts +22 -0
- package/dist/mcp/tools/list-observations.d.ts.map +1 -0
- package/dist/mcp/tools/list-observations.js +23 -0
- package/dist/mcp/tools/list-observations.js.map +1 -0
- package/dist/mcp/tools/list-projects.d.ts +10 -0
- package/dist/mcp/tools/list-projects.d.ts.map +1 -0
- package/dist/mcp/tools/list-projects.js +14 -0
- package/dist/mcp/tools/list-projects.js.map +1 -0
- package/dist/mcp/tools/list-sessions.d.ts +19 -0
- package/dist/mcp/tools/list-sessions.d.ts.map +1 -0
- package/dist/mcp/tools/list-sessions.js +22 -0
- package/dist/mcp/tools/list-sessions.js.map +1 -0
- package/dist/mcp/tools/search-observations.d.ts +16 -0
- package/dist/mcp/tools/search-observations.d.ts.map +1 -0
- package/dist/mcp/tools/search-observations.js +16 -0
- package/dist/mcp/tools/search-observations.js.map +1 -0
- package/dist/schemas/health.d.ts +16 -0
- package/dist/schemas/health.d.ts.map +1 -0
- package/dist/schemas/health.js +7 -0
- package/dist/schemas/health.js.map +1 -0
- package/dist/schemas/observation.d.ts +34 -0
- package/dist/schemas/observation.d.ts.map +1 -0
- package/dist/schemas/observation.js +14 -0
- package/dist/schemas/observation.js.map +1 -0
- package/dist/schemas/project.d.ts +19 -0
- package/dist/schemas/project.d.ts.map +1 -0
- package/dist/schemas/project.js +8 -0
- package/dist/schemas/project.js.map +1 -0
- package/dist/schemas/session.d.ts +145 -0
- package/dist/schemas/session.d.ts.map +1 -0
- package/dist/schemas/session.js +24 -0
- package/dist/schemas/session.js.map +1 -0
- package/dist/schemas/timestamp.d.ts +3 -0
- package/dist/schemas/timestamp.d.ts.map +1 -0
- package/dist/schemas/timestamp.js +11 -0
- package/dist/schemas/timestamp.js.map +1 -0
- package/dist/sidebar/components/activity-feed.d.ts +13 -0
- package/dist/sidebar/components/activity-feed.d.ts.map +1 -0
- package/dist/sidebar/components/activity-feed.js +21 -0
- package/dist/sidebar/components/activity-feed.js.map +1 -0
- package/dist/sidebar/components/blockers.d.ts +17 -0
- package/dist/sidebar/components/blockers.d.ts.map +1 -0
- package/dist/sidebar/components/blockers.js +26 -0
- package/dist/sidebar/components/blockers.js.map +1 -0
- package/dist/sidebar/components/phase-progress.d.ts +13 -0
- package/dist/sidebar/components/phase-progress.d.ts.map +1 -0
- package/dist/sidebar/components/phase-progress.js +21 -0
- package/dist/sidebar/components/phase-progress.js.map +1 -0
- package/dist/sidebar/components/project-list.d.ts +16 -0
- package/dist/sidebar/components/project-list.d.ts.map +1 -0
- package/dist/sidebar/components/project-list.js +42 -0
- package/dist/sidebar/components/project-list.js.map +1 -0
- package/dist/sidebar/components/reactive-value.d.ts +4 -0
- package/dist/sidebar/components/reactive-value.d.ts.map +1 -0
- package/dist/sidebar/components/reactive-value.js +4 -0
- package/dist/sidebar/components/reactive-value.js.map +1 -0
- package/dist/sidebar/dashboard-launcher.d.ts +52 -0
- package/dist/sidebar/dashboard-launcher.d.ts.map +1 -0
- package/dist/sidebar/dashboard-launcher.js +125 -0
- package/dist/sidebar/dashboard-launcher.js.map +1 -0
- package/dist/sidebar/hooks/use-engram.d.ts +81 -0
- package/dist/sidebar/hooks/use-engram.d.ts.map +1 -0
- package/dist/sidebar/hooks/use-engram.js +423 -0
- package/dist/sidebar/hooks/use-engram.js.map +1 -0
- package/dist/sidebar/plugin.d.ts +85 -0
- package/dist/sidebar/plugin.d.ts.map +1 -0
- package/dist/sidebar/plugin.js +288 -0
- package/dist/sidebar/plugin.js.map +1 -0
- package/dist/stdio.d.ts +3 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +20 -0
- package/dist/stdio.js.map +1 -0
- package/dist/utils/errors.d.ts +19 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +27 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/format.d.ts +11 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +30 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/project-resolver.d.ts +21 -0
- package/dist/utils/project-resolver.d.ts.map +1 -0
- package/dist/utils/project-resolver.js +122 -0
- package/dist/utils/project-resolver.js.map +1 -0
- package/dist/utils/sdd-detector.d.ts +35 -0
- package/dist/utils/sdd-detector.d.ts.map +1 -0
- package/dist/utils/sdd-detector.js +115 -0
- package/dist/utils/sdd-detector.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const ListSessionsInput = z.object({
|
|
3
|
+
project: z.string().optional(),
|
|
4
|
+
limit: z.number().int().min(1).max(100).default(20),
|
|
5
|
+
});
|
|
6
|
+
export async function listSessionsHandler(adapter, args) {
|
|
7
|
+
const { project, limit } = args;
|
|
8
|
+
const sessions = await adapter.listSessions({
|
|
9
|
+
project,
|
|
10
|
+
limit,
|
|
11
|
+
});
|
|
12
|
+
const recentFirst = [...sessions].sort((left, right) => right.updated_at.localeCompare(left.updated_at) || left.id.localeCompare(right.id));
|
|
13
|
+
return {
|
|
14
|
+
content: [
|
|
15
|
+
{
|
|
16
|
+
type: "text",
|
|
17
|
+
text: JSON.stringify(recentFirst),
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=list-sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-sessions.js","sourceRoot":"","sources":["../../../src/mcp/tools/list-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAsB,EACtB,IAAuC;IAEvC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEhC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;QAC1C,OAAO;QACP,KAAK;KACN,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CACpC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CACpG,CAAC;IAEF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;aAClC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { EngramAdapter } from "../../adapters/types.js";
|
|
3
|
+
export declare const SearchObservationsInput: z.ZodObject<{
|
|
4
|
+
q: z.ZodString;
|
|
5
|
+
}, "strip", z.ZodTypeAny, {
|
|
6
|
+
q: string;
|
|
7
|
+
}, {
|
|
8
|
+
q: string;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function searchObservationsHandler(adapter: EngramAdapter, args: z.infer<typeof SearchObservationsInput>): Promise<{
|
|
11
|
+
content: {
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
}[];
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=search-observations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-observations.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search-observations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AAEH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC;;;;;GAY9C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const SearchObservationsInput = z.object({
|
|
3
|
+
q: z.string().min(1).max(500),
|
|
4
|
+
});
|
|
5
|
+
export async function searchObservationsHandler(adapter, args) {
|
|
6
|
+
const observations = await adapter.searchObservations(args.q);
|
|
7
|
+
return {
|
|
8
|
+
content: [
|
|
9
|
+
{
|
|
10
|
+
type: "text",
|
|
11
|
+
text: JSON.stringify(observations),
|
|
12
|
+
},
|
|
13
|
+
],
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=search-observations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-observations.js","sourceRoot":"","sources":["../../../src/mcp/tools/search-observations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAsB,EACtB,IAA6C;IAE7C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE9D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;aACnC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const localHealthResponseSchema: z.ZodObject<{
|
|
3
|
+
service: z.ZodString;
|
|
4
|
+
status: z.ZodString;
|
|
5
|
+
version: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
status: string;
|
|
8
|
+
service: string;
|
|
9
|
+
version: string;
|
|
10
|
+
}, {
|
|
11
|
+
status: string;
|
|
12
|
+
service: string;
|
|
13
|
+
version: string;
|
|
14
|
+
}>;
|
|
15
|
+
export type LocalHealthResponse = z.infer<typeof localHealthResponseSchema>;
|
|
16
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/schemas/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAIpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/schemas/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const observationSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodNumber;
|
|
4
|
+
type: z.ZodString;
|
|
5
|
+
title: z.ZodString;
|
|
6
|
+
topic_key: z.ZodDefault<z.ZodString>;
|
|
7
|
+
content: z.ZodString;
|
|
8
|
+
project: z.ZodString;
|
|
9
|
+
scope: z.ZodEnum<["project", "personal"]>;
|
|
10
|
+
updated_at: z.ZodEffects<z.ZodString, string, unknown>;
|
|
11
|
+
created_at: z.ZodEffects<z.ZodString, string, unknown>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
project: string;
|
|
14
|
+
type: string;
|
|
15
|
+
id: number;
|
|
16
|
+
title: string;
|
|
17
|
+
topic_key: string;
|
|
18
|
+
content: string;
|
|
19
|
+
scope: "project" | "personal";
|
|
20
|
+
updated_at: string;
|
|
21
|
+
created_at: string;
|
|
22
|
+
}, {
|
|
23
|
+
project: string;
|
|
24
|
+
type: string;
|
|
25
|
+
id: number;
|
|
26
|
+
title: string;
|
|
27
|
+
content: string;
|
|
28
|
+
scope: "project" | "personal";
|
|
29
|
+
topic_key?: string | undefined;
|
|
30
|
+
updated_at?: unknown;
|
|
31
|
+
created_at?: unknown;
|
|
32
|
+
}>;
|
|
33
|
+
export type ObservationSchema = z.infer<typeof observationSchema>;
|
|
34
|
+
//# sourceMappingURL=observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../src/schemas/observation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { engramTimestampSchema } from "./timestamp.js";
|
|
3
|
+
export const observationSchema = z.object({
|
|
4
|
+
id: z.number().int().positive(),
|
|
5
|
+
type: z.string().min(1),
|
|
6
|
+
title: z.string().min(1),
|
|
7
|
+
topic_key: z.string().default(""),
|
|
8
|
+
content: z.string(),
|
|
9
|
+
project: z.string().min(1),
|
|
10
|
+
scope: z.enum(["project", "personal"]),
|
|
11
|
+
updated_at: engramTimestampSchema,
|
|
12
|
+
created_at: engramTimestampSchema,
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=observation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/schemas/observation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtC,UAAU,EAAE,qBAAqB;IACjC,UAAU,EAAE,qBAAqB;CAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const projectSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
observationCount: z.ZodNumber;
|
|
5
|
+
lastActiveAt: z.ZodString;
|
|
6
|
+
scopes: z.ZodArray<z.ZodEnum<["project", "personal"]>, "many">;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
observationCount: number;
|
|
9
|
+
lastActiveAt: string;
|
|
10
|
+
name: string;
|
|
11
|
+
scopes: ("project" | "personal")[];
|
|
12
|
+
}, {
|
|
13
|
+
observationCount: number;
|
|
14
|
+
lastActiveAt: string;
|
|
15
|
+
name: string;
|
|
16
|
+
scopes: ("project" | "personal")[];
|
|
17
|
+
}>;
|
|
18
|
+
export type ProjectSchema = z.infer<typeof projectSchema>;
|
|
19
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/schemas/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const projectSchema = z.object({
|
|
3
|
+
name: z.string().min(1),
|
|
4
|
+
observationCount: z.number().int().nonnegative(),
|
|
5
|
+
lastActiveAt: z.string().datetime(),
|
|
6
|
+
scopes: z.array(z.enum(["project", "personal"])),
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/schemas/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAChD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;CACjD,CAAC,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const sessionSchema: z.ZodEffects<z.ZodObject<{
|
|
3
|
+
id: z.ZodString;
|
|
4
|
+
project: z.ZodString;
|
|
5
|
+
started_at: z.ZodEffects<z.ZodString, string, unknown>;
|
|
6
|
+
updated_at: z.ZodOptional<z.ZodEffects<z.ZodString, string, unknown>>;
|
|
7
|
+
observation_count: z.ZodNumber;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
project: string;
|
|
10
|
+
id: string;
|
|
11
|
+
started_at: string;
|
|
12
|
+
observation_count: number;
|
|
13
|
+
updated_at?: string | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
project: string;
|
|
16
|
+
id: string;
|
|
17
|
+
observation_count: number;
|
|
18
|
+
updated_at?: unknown;
|
|
19
|
+
started_at?: unknown;
|
|
20
|
+
}>, Omit<{
|
|
21
|
+
project: string;
|
|
22
|
+
id: string;
|
|
23
|
+
started_at: string;
|
|
24
|
+
observation_count: number;
|
|
25
|
+
updated_at?: string | undefined;
|
|
26
|
+
}, "updated_at"> & {
|
|
27
|
+
updated_at: string;
|
|
28
|
+
}, {
|
|
29
|
+
project: string;
|
|
30
|
+
id: string;
|
|
31
|
+
observation_count: number;
|
|
32
|
+
updated_at?: unknown;
|
|
33
|
+
started_at?: unknown;
|
|
34
|
+
}>;
|
|
35
|
+
export declare const sessionWithObservationsSchema: z.ZodEffects<z.ZodObject<{
|
|
36
|
+
observations: z.ZodArray<z.ZodObject<{
|
|
37
|
+
id: z.ZodNumber;
|
|
38
|
+
type: z.ZodString;
|
|
39
|
+
title: z.ZodString;
|
|
40
|
+
topic_key: z.ZodDefault<z.ZodString>;
|
|
41
|
+
content: z.ZodString;
|
|
42
|
+
project: z.ZodString;
|
|
43
|
+
scope: z.ZodEnum<["project", "personal"]>;
|
|
44
|
+
updated_at: z.ZodEffects<z.ZodString, string, unknown>;
|
|
45
|
+
created_at: z.ZodEffects<z.ZodString, string, unknown>;
|
|
46
|
+
}, "strip", z.ZodTypeAny, {
|
|
47
|
+
project: string;
|
|
48
|
+
type: string;
|
|
49
|
+
id: number;
|
|
50
|
+
title: string;
|
|
51
|
+
topic_key: string;
|
|
52
|
+
content: string;
|
|
53
|
+
scope: "project" | "personal";
|
|
54
|
+
updated_at: string;
|
|
55
|
+
created_at: string;
|
|
56
|
+
}, {
|
|
57
|
+
project: string;
|
|
58
|
+
type: string;
|
|
59
|
+
id: number;
|
|
60
|
+
title: string;
|
|
61
|
+
content: string;
|
|
62
|
+
scope: "project" | "personal";
|
|
63
|
+
topic_key?: string | undefined;
|
|
64
|
+
updated_at?: unknown;
|
|
65
|
+
created_at?: unknown;
|
|
66
|
+
}>, "many">;
|
|
67
|
+
id: z.ZodString;
|
|
68
|
+
project: z.ZodString;
|
|
69
|
+
started_at: z.ZodEffects<z.ZodString, string, unknown>;
|
|
70
|
+
updated_at: z.ZodOptional<z.ZodEffects<z.ZodString, string, unknown>>;
|
|
71
|
+
observation_count: z.ZodNumber;
|
|
72
|
+
}, "strip", z.ZodTypeAny, {
|
|
73
|
+
project: string;
|
|
74
|
+
id: string;
|
|
75
|
+
started_at: string;
|
|
76
|
+
observation_count: number;
|
|
77
|
+
observations: {
|
|
78
|
+
project: string;
|
|
79
|
+
type: string;
|
|
80
|
+
id: number;
|
|
81
|
+
title: string;
|
|
82
|
+
topic_key: string;
|
|
83
|
+
content: string;
|
|
84
|
+
scope: "project" | "personal";
|
|
85
|
+
updated_at: string;
|
|
86
|
+
created_at: string;
|
|
87
|
+
}[];
|
|
88
|
+
updated_at?: string | undefined;
|
|
89
|
+
}, {
|
|
90
|
+
project: string;
|
|
91
|
+
id: string;
|
|
92
|
+
observation_count: number;
|
|
93
|
+
observations: {
|
|
94
|
+
project: string;
|
|
95
|
+
type: string;
|
|
96
|
+
id: number;
|
|
97
|
+
title: string;
|
|
98
|
+
content: string;
|
|
99
|
+
scope: "project" | "personal";
|
|
100
|
+
topic_key?: string | undefined;
|
|
101
|
+
updated_at?: unknown;
|
|
102
|
+
created_at?: unknown;
|
|
103
|
+
}[];
|
|
104
|
+
updated_at?: unknown;
|
|
105
|
+
started_at?: unknown;
|
|
106
|
+
}>, Omit<{
|
|
107
|
+
project: string;
|
|
108
|
+
id: string;
|
|
109
|
+
started_at: string;
|
|
110
|
+
observation_count: number;
|
|
111
|
+
observations: {
|
|
112
|
+
project: string;
|
|
113
|
+
type: string;
|
|
114
|
+
id: number;
|
|
115
|
+
title: string;
|
|
116
|
+
topic_key: string;
|
|
117
|
+
content: string;
|
|
118
|
+
scope: "project" | "personal";
|
|
119
|
+
updated_at: string;
|
|
120
|
+
created_at: string;
|
|
121
|
+
}[];
|
|
122
|
+
updated_at?: string | undefined;
|
|
123
|
+
}, "updated_at"> & {
|
|
124
|
+
updated_at: string;
|
|
125
|
+
}, {
|
|
126
|
+
project: string;
|
|
127
|
+
id: string;
|
|
128
|
+
observation_count: number;
|
|
129
|
+
observations: {
|
|
130
|
+
project: string;
|
|
131
|
+
type: string;
|
|
132
|
+
id: number;
|
|
133
|
+
title: string;
|
|
134
|
+
content: string;
|
|
135
|
+
scope: "project" | "personal";
|
|
136
|
+
topic_key?: string | undefined;
|
|
137
|
+
updated_at?: unknown;
|
|
138
|
+
created_at?: unknown;
|
|
139
|
+
}[];
|
|
140
|
+
updated_at?: unknown;
|
|
141
|
+
started_at?: unknown;
|
|
142
|
+
}>;
|
|
143
|
+
export type SessionSchema = z.infer<typeof sessionSchema>;
|
|
144
|
+
export type SessionWithObservationsSchema = z.infer<typeof sessionWithObservationsSchema>;
|
|
145
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/schemas/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;gBAPe,MAAM;;;;;;;EAOmC,CAAC;AAEnF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBATD,MAAM;;;;;;;;;;;;;;;;;;EAcf,CAAC;AAEjC,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAC1D,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { observationSchema } from "./observation.js";
|
|
3
|
+
import { engramTimestampSchema } from "./timestamp.js";
|
|
4
|
+
const sessionFields = {
|
|
5
|
+
id: z.string().min(1),
|
|
6
|
+
project: z.string().min(1),
|
|
7
|
+
started_at: engramTimestampSchema,
|
|
8
|
+
updated_at: engramTimestampSchema.optional(),
|
|
9
|
+
observation_count: z.number().int().nonnegative(),
|
|
10
|
+
};
|
|
11
|
+
function normalizeUpdatedAt(session) {
|
|
12
|
+
return {
|
|
13
|
+
...session,
|
|
14
|
+
updated_at: session.updated_at ?? session.started_at,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export const sessionSchema = z.object(sessionFields).transform(normalizeUpdatedAt);
|
|
18
|
+
export const sessionWithObservationsSchema = z
|
|
19
|
+
.object({
|
|
20
|
+
...sessionFields,
|
|
21
|
+
observations: z.array(observationSchema),
|
|
22
|
+
})
|
|
23
|
+
.transform(normalizeUpdatedAt);
|
|
24
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/schemas/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,aAAa,GAAG;IACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,UAAU,EAAE,qBAAqB;IACjC,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC5C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CAClD,CAAC;AAEF,SAAS,kBAAkB,CACzB,OAAU;IAEV,OAAO;QACL,GAAG,OAAO;QACV,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,GAAG,aAAa;IAChB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;CACzC,CAAC;KACD,SAAS,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../src/schemas/timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,qBAAqB,4CAOT,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const SQLITE_TIMESTAMP = /^(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})$/;
|
|
3
|
+
export const engramTimestampSchema = z.preprocess((value) => {
|
|
4
|
+
if (typeof value !== "string")
|
|
5
|
+
return value;
|
|
6
|
+
const sqliteTimestamp = SQLITE_TIMESTAMP.exec(value);
|
|
7
|
+
return sqliteTimestamp
|
|
8
|
+
? `${sqliteTimestamp[1]}T${sqliteTimestamp[2]}Z`
|
|
9
|
+
: value;
|
|
10
|
+
}, z.string().datetime());
|
|
11
|
+
//# sourceMappingURL=timestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/schemas/timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,gBAAgB,GAAG,2CAA2C,CAAC;AAErE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,eAAe;QACpB,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG;QAChD,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** @jsxImportSource @opentui/solid */
|
|
2
|
+
import { type Accessor } from "solid-js";
|
|
3
|
+
import type { TuiSlotContext } from "@opencode-ai/plugin/tui";
|
|
4
|
+
import type { Observation } from "../../adapters/types.js";
|
|
5
|
+
import { type ReactiveValue } from "./reactive-value.js";
|
|
6
|
+
export interface ActivityFeedProps {
|
|
7
|
+
observations: ReactiveValue<Observation[]>;
|
|
8
|
+
theme?: TuiSlotContext["theme"];
|
|
9
|
+
}
|
|
10
|
+
export declare function activityLines(value: ReactiveValue<Observation[]>): string[];
|
|
11
|
+
export declare function createActivityFeedView(value: ReactiveValue<Observation[]>): Accessor<string[]>;
|
|
12
|
+
export declare function ActivityFeed(props: ActivityFeedProps): import("solid-js").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=activity-feed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-feed.d.ts","sourceRoot":"","sources":["../../../src/sidebar/components/activity-feed.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,EAAE,CAQ3E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAE9F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,kCAWpD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@opentui/solid/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @opentui/solid */
|
|
3
|
+
import { For } from "solid-js";
|
|
4
|
+
import { readReactive } from "./reactive-value.js";
|
|
5
|
+
export function activityLines(value) {
|
|
6
|
+
const observations = readReactive(value);
|
|
7
|
+
return [
|
|
8
|
+
" đ Recent Activity",
|
|
9
|
+
...(observations.length
|
|
10
|
+
? observations.map((observation) => ` âĸ ${observation.title}`)
|
|
11
|
+
: [" đ¤ No recent activity."]),
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
export function createActivityFeedView(value) {
|
|
15
|
+
return () => activityLines(value);
|
|
16
|
+
}
|
|
17
|
+
export function ActivityFeed(props) {
|
|
18
|
+
const lines = createActivityFeedView(props.observations);
|
|
19
|
+
return (_jsx("box", { flexDirection: "column", children: _jsx(For, { each: lines(), children: (line, index) => (_jsx("text", { fg: index() === 0 ? props.theme?.current.secondary : props.theme?.current.textMuted, children: line })) }) }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=activity-feed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-feed.js","sourceRoot":"","sources":["../../../src/sidebar/components/activity-feed.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AAEtC,OAAO,EAAE,GAAG,EAAiB,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAOvE,MAAM,UAAU,aAAa,CAAC,KAAmC;IAC/D,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO;QACL,sBAAsB;QACtB,GAAG,CAAC,YAAY,CAAC,MAAM;YACrB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,WAAW,CAAC,KAAK,EAAE,CAAC;YACjE,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAmC;IACxE,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACzD,OAAO,CACL,cAAK,aAAa,EAAC,QAAQ,YACzB,KAAC,GAAG,IAAC,IAAI,EAAE,KAAK,EAAE,YAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,eAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,YACtF,IAAI,GACA,CACR,GAAO,GACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** @jsxImportSource @opentui/solid */
|
|
2
|
+
import { type Accessor } from "solid-js";
|
|
3
|
+
import type { TuiSlotContext } from "@opencode-ai/plugin/tui";
|
|
4
|
+
import type { Observation } from "../../adapters/types.js";
|
|
5
|
+
import { type ReactiveValue } from "./reactive-value.js";
|
|
6
|
+
export interface BlockersProps {
|
|
7
|
+
blockers: ReactiveValue<Observation[]>;
|
|
8
|
+
theme?: TuiSlotContext["theme"];
|
|
9
|
+
}
|
|
10
|
+
export declare function blockerLines(value: ReactiveValue<Observation[]>): string[];
|
|
11
|
+
export interface BlockersView {
|
|
12
|
+
lines: Accessor<string[]>;
|
|
13
|
+
hasBlockers: Accessor<boolean>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createBlockersView(value: ReactiveValue<Observation[]>): BlockersView;
|
|
16
|
+
export declare function Blockers(props: BlockersProps): import("solid-js").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=blockers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockers.d.ts","sourceRoot":"","sources":["../../../src/sidebar/components/blockers.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,EAAE,CAQ1E;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1B,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,GAAG,YAAY,CAKpF;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,kCAc5C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@opentui/solid/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @opentui/solid */
|
|
3
|
+
import { For } from "solid-js";
|
|
4
|
+
import { readReactive } from "./reactive-value.js";
|
|
5
|
+
export function blockerLines(value) {
|
|
6
|
+
const blockers = readReactive(value);
|
|
7
|
+
return [
|
|
8
|
+
" đ§ Blockers",
|
|
9
|
+
...(blockers.length
|
|
10
|
+
? blockers.map((blocker) => ` âĸ ${blocker.title}`)
|
|
11
|
+
: [" â
No explicit blockers."]),
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
export function createBlockersView(value) {
|
|
15
|
+
return {
|
|
16
|
+
lines: () => blockerLines(value),
|
|
17
|
+
hasBlockers: () => readReactive(value).length > 0,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function Blockers(props) {
|
|
21
|
+
const view = createBlockersView(props.blockers);
|
|
22
|
+
return (_jsx("box", { flexDirection: "column", children: _jsx(For, { each: view.lines(), children: (line, index) => (_jsx("text", { fg: index() === 0
|
|
23
|
+
? props.theme?.current.warning
|
|
24
|
+
: view.hasBlockers() ? props.theme?.current.error : props.theme?.current.success, children: line })) }) }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=blockers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockers.js","sourceRoot":"","sources":["../../../src/sidebar/components/blockers.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AAEtC,OAAO,EAAE,GAAG,EAAiB,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAOvE,MAAM,UAAU,YAAY,CAAC,KAAmC;IAC9D,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO;QACL,eAAe;QACf,GAAG,CAAC,QAAQ,CAAC,MAAM;YACjB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,OAAO,CAAC,KAAK,EAAE,CAAC;YACrD,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;KACrC,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,kBAAkB,CAAC,KAAmC;IACpE,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;QAChC,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,CACL,cAAK,aAAa,EAAC,QAAQ,YACzB,KAAC,GAAG,IAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACzC,eAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC;oBACrB,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO;oBAC9B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,YAE/E,IAAI,GACA,CACR,GAAO,GACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** @jsxImportSource @opentui/solid */
|
|
2
|
+
import { type Accessor } from "solid-js";
|
|
3
|
+
import type { TuiSlotContext } from "@opencode-ai/plugin/tui";
|
|
4
|
+
import type { SDDChange } from "../../utils/sdd-detector.js";
|
|
5
|
+
import { type ReactiveValue } from "./reactive-value.js";
|
|
6
|
+
export interface PhaseProgressProps {
|
|
7
|
+
changes: ReactiveValue<SDDChange[]>;
|
|
8
|
+
theme?: TuiSlotContext["theme"];
|
|
9
|
+
}
|
|
10
|
+
export declare function phaseProgressLines(value: ReactiveValue<SDDChange[]>): string[];
|
|
11
|
+
export declare function createPhaseProgressView(value: ReactiveValue<SDDChange[]>): Accessor<string[]>;
|
|
12
|
+
export declare function PhaseProgress(props: PhaseProgressProps): import("solid-js").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=phase-progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-progress.d.ts","sourceRoot":"","sources":["../../../src/sidebar/components/phase-progress.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,CAU9E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAE7F;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,kCAWtD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@opentui/solid/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @opentui/solid */
|
|
3
|
+
import { For } from "solid-js";
|
|
4
|
+
import { readReactive } from "./reactive-value.js";
|
|
5
|
+
export function phaseProgressLines(value) {
|
|
6
|
+
const changes = readReactive(value);
|
|
7
|
+
return [
|
|
8
|
+
" đ SDD Progress",
|
|
9
|
+
...(changes.length
|
|
10
|
+
? changes.map((change) => ` âĸ ${change.name}: ${change.state} (${change.phases.map((phase) => phase.phase).join(" â ")})`)
|
|
11
|
+
: [" âšī¸ No active SDD changes."]),
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
export function createPhaseProgressView(value) {
|
|
15
|
+
return () => phaseProgressLines(value);
|
|
16
|
+
}
|
|
17
|
+
export function PhaseProgress(props) {
|
|
18
|
+
const lines = createPhaseProgressView(props.changes);
|
|
19
|
+
return (_jsx("box", { flexDirection: "column", children: _jsx(For, { each: lines(), children: (line, index) => (_jsx("text", { fg: index() === 0 ? props.theme?.current.info : props.theme?.current.textMuted, children: line })) }) }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=phase-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-progress.js","sourceRoot":"","sources":["../../../src/sidebar/components/phase-progress.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AAEtC,OAAO,EAAE,GAAG,EAAiB,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAOvE,MAAM,UAAU,kBAAkB,CAAC,KAAiC;IAClE,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO;QACL,mBAAmB;QACnB,GAAG,CAAC,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC,OAAO,CAAC,GAAG,CACT,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAC/G;YACF,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAiC;IACvE,OAAO,GAAG,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO,CACL,cAAK,aAAa,EAAC,QAAQ,YACzB,KAAC,GAAG,IAAC,IAAI,EAAE,KAAK,EAAE,YAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,eAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,YACjF,IAAI,GACA,CACR,GAAO,GACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** @jsxImportSource @opentui/solid */
|
|
2
|
+
import type { Project } from "../../adapters/types.js";
|
|
3
|
+
import type { ProjectResolution } from "../../utils/project-resolver.js";
|
|
4
|
+
import type { TuiSlotContext } from "@opencode-ai/plugin/tui";
|
|
5
|
+
import { type Accessor } from "solid-js";
|
|
6
|
+
import { type ReactiveValue } from "./reactive-value.js";
|
|
7
|
+
export interface ProjectListProps {
|
|
8
|
+
projectName?: ReactiveValue<string | undefined>;
|
|
9
|
+
project?: ReactiveValue<Project | undefined>;
|
|
10
|
+
resolution?: ReactiveValue<ProjectResolution | undefined>;
|
|
11
|
+
theme?: TuiSlotContext["theme"];
|
|
12
|
+
}
|
|
13
|
+
export declare function projectLines(props: ProjectListProps): string[];
|
|
14
|
+
export declare function createProjectListView(props: ProjectListProps): Accessor<string[]>;
|
|
15
|
+
export declare function ProjectList(props: ProjectListProps): import("solid-js").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=project-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-list.d.ts","sourceRoot":"","sources":["../../../src/sidebar/components/project-list.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,aAAa,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAiB9D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAEjF;AAiBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,kCAWlD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@opentui/solid/jsx-runtime";
|
|
2
|
+
import { For } from "solid-js";
|
|
3
|
+
import { readReactive } from "./reactive-value.js";
|
|
4
|
+
export function projectLines(props) {
|
|
5
|
+
const projectName = props.projectName === undefined ? undefined : readReactive(props.projectName);
|
|
6
|
+
const project = props.project === undefined ? undefined : readReactive(props.project);
|
|
7
|
+
const resolution = props.resolution === undefined ? undefined : readReactive(props.resolution);
|
|
8
|
+
if (!projectName) {
|
|
9
|
+
return [
|
|
10
|
+
"đ Project: unresolved",
|
|
11
|
+
resolutionHint(resolution),
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
return [
|
|
15
|
+
`đ Project: ${projectName}`,
|
|
16
|
+
project
|
|
17
|
+
? ` đī¸ Indexed observations: ${project.observationCount}`
|
|
18
|
+
: " đī¸ No indexed observations yet.",
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
export function createProjectListView(props) {
|
|
22
|
+
return () => projectLines(props);
|
|
23
|
+
}
|
|
24
|
+
function resolutionHint(resolution) {
|
|
25
|
+
if (!resolution || resolution.validation === "no-candidate") {
|
|
26
|
+
return "đĄ Set project in workspace tui.json, ENGRAM_PROJECT, or open OpenCode from a project directory.";
|
|
27
|
+
}
|
|
28
|
+
if (resolution.validation === "offline") {
|
|
29
|
+
return resolution.candidate
|
|
30
|
+
? `â ī¸ Unvalidated ${resolution.source} candidate: ${resolution.candidate} (Engram offline).`
|
|
31
|
+
: "â ī¸ Engram is offline; the workspace basename was not trusted without validation.";
|
|
32
|
+
}
|
|
33
|
+
if (resolution.validation === "ambiguous") {
|
|
34
|
+
return `â ī¸ Candidate ${resolution.candidate} is ambiguous; set the exact Engram project in workspace tui.json.`;
|
|
35
|
+
}
|
|
36
|
+
return `â ī¸ Candidate ${resolution.candidate} was not found in Engram; set the exact project in workspace tui.json.`;
|
|
37
|
+
}
|
|
38
|
+
export function ProjectList(props) {
|
|
39
|
+
const lines = createProjectListView(props);
|
|
40
|
+
return (_jsx("box", { flexDirection: "column", children: _jsx(For, { each: lines(), children: (line, index) => (_jsx("text", { fg: index() === 0 ? props.theme?.current.primary : props.theme?.current.textMuted, children: line })) }) }));
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=project-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-list.js","sourceRoot":"","sources":["../../../src/sidebar/components/project-list.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,GAAG,EAAiB,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AASvE,MAAM,UAAU,YAAY,CAAC,KAAuB;IAClD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/F,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,wBAAwB;YACxB,cAAc,CAAC,UAAU,CAAC;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,eAAe,WAAW,EAAE;QAC5B,OAAO;YACL,CAAC,CAAC,+BAA+B,OAAO,CAAC,gBAAgB,EAAE;YAC3D,CAAC,CAAC,oCAAoC;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAuB;IAC3D,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,UAA8B;IACpD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QAC5D,OAAO,kGAAkG,CAAC;IAC5G,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,UAAU,CAAC,SAAS;YACzB,CAAC,CAAC,kBAAkB,UAAU,CAAC,MAAM,eAAe,UAAU,CAAC,SAAS,oBAAoB;YAC5F,CAAC,CAAC,kFAAkF,CAAC;IACzF,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QAC1C,OAAO,gBAAgB,UAAU,CAAC,SAAS,oEAAoE,CAAC;IAClH,CAAC;IACD,OAAO,gBAAgB,UAAU,CAAC,SAAS,wEAAwE,CAAC;AACtH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,CACL,cAAK,aAAa,EAAC,QAAQ,YACzB,KAAC,GAAG,IAAC,IAAI,EAAE,KAAK,EAAE,YAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,eAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,YACpF,IAAI,GACA,CACR,GAAO,GACJ,CACP,CAAC;AACJ,CAAC"}
|