@agimon-ai/doompi-profile 0.0.1-alpha.61 → 0.0.1-alpha.63

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.
@@ -67,7 +67,16 @@ var sessionStart_server_default = (0, _agimon_ai_doompi_core_extensionFile.defin
67
67
  //#region src/extensions/workspaces/sessions/(backend)/resource/doompiAuthorProfile.server.ts
68
68
  var doompiAuthorProfile_server_default = (0, _agimon_ai_doompi_core_extensionFile.defineResource)({
69
69
  name: "doompi-author-profile",
70
+ description: "Configure DoomPi profile discovery, personas, environment defaults, and precedence in profiles.yaml. Use when creating or changing personal or repository profiles. Do not use for config.yaml runtime settings, modes.yaml, or domains.yaml.",
71
+ when: {
72
+ state: { "minor-mode": "help" },
73
+ attribution: {
74
+ kind: "minor",
75
+ mode: "help"
76
+ }
77
+ },
70
78
  kind: "skill",
79
+ path: (0, _agimon_ai_doompi_core_serverFacet.packageResourcePath)(require("url").pathToFileURL(__filename).href, "src/prompts/doompi-author-profile/SKILL.md"),
71
80
  read: () => (0, _agimon_ai_doompi_core_serverFacet.readPackageResource)(require("url").pathToFileURL(__filename).href, "src/prompts/doompi-author-profile/SKILL.md")
72
81
  });
73
82
  //#endregion
@@ -82,10 +91,10 @@ var profileConfig_server_default = (0, _agimon_ai_doompi_core_extensionFile.defi
82
91
  const at = (value, context) => typeof value === "function" ? value(context) : value;
83
92
  /* v8 ignore next -- generated normalization branch */
84
93
  const defined = (values) => values.filter((value) => value !== void 0);
85
- const via = (identity, value) => ({
94
+ const via = (identity, value) => value === void 0 ? void 0 : {
86
95
  ...identity,
87
96
  ...value
88
- });
97
+ };
89
98
  const facet = (0, _agimon_ai_doompi_core_serverFacet.defineServerPlugin)({
90
99
  name: "@agimon-ai/doompi-profile",
91
100
  session: (context) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"server.cjs","names":["resolveProfile","buildPersonaPrompt","DOOM_PROFILE_IDENTITY_ENTRY_TYPE","PROFILE_COMMAND","loadProfiles","profileTitle","profileItems","defineRoutedContribution","defineHook","defineResource","readPackageResource","defineResource","defineServerPlugin","commandProfile","hookSessionStart","resourceDoompiAuthorProfile","resourceProfileConfig"],"sources":["../../src/extensions/workspaces/sessions/(backend)/_lib/profileServer.ts","../../src/extensions/workspaces/sessions/(backend)/command/profile.server.ts","../../src/extensions/workspaces/sessions/(backend)/hook/sessionStart.server.ts","../../src/extensions/workspaces/sessions/(backend)/resource/doompiAuthorProfile.server.ts","../../src/extensions/workspaces/sessions/(backend)/resource/profileConfig.server.ts","../../generated/server.ts"],"sourcesContent":["import { buildPersonaPrompt, loadProfiles, resolveProfile } from '@agimon-ai/doompi-config/profiles';\nimport {\n type DoomHeadlessCommand,\n type DoomHeadlessExecutionContext,\n type DoomHeadlessHostService,\n type DoomHeadlessHook,\n} from '@agimon-ai/doompi-core/headless';\nimport { DOOM_PROFILE_IDENTITY_ENTRY_TYPE } from '@agimon-ai/doompi-core/profileIdentity';\n\nimport { PROFILE_COMMAND, profileItems, profileTitle } from '../../../../../services/profileText';\n\nexport async function readSelectedPersona(execution: {\n readonly repoRoot: string;\n readonly selection: { readonly profile?: string };\n}): Promise<string> {\n const name = execution.selection.profile;\n if (!name) return '(no active profile)';\n const profile = resolveProfile(execution.repoRoot, name);\n const prompt = buildPersonaPrompt(profile.personaRoot, profile.persona);\n if (!prompt) throw new Error(`Profile \"${name}\" has no readable persona text`);\n return prompt;\n}\n\nasync function publishSelectedIdentity(execution: DoomHeadlessExecutionContext, profile: string): Promise<void> {\n const identity = resolveProfile(execution.repoRoot, profile).identity;\n await execution.session.appendCustomEntry(DOOM_PROFILE_IDENTITY_ENTRY_TYPE, {\n profile,\n ...(identity?.name === undefined ? {} : { name: identity.name }),\n ...(identity?.icon === undefined ? {} : { icon: identity.icon }),\n });\n}\n\nexport function createProfileServerCommand(host: DoomHeadlessHostService): DoomHeadlessCommand {\n return {\n name: PROFILE_COMMAND,\n description: 'Show or change the active DoomPi profile.',\n async execute(args, execution) {\n const profiles = loadProfiles(execution.repoRoot);\n let requested = args.trim();\n if (!requested) {\n const selected = await execution.client.request({\n kind: 'select',\n title: profileTitle(execution.selection.profile),\n options: profileItems(profiles),\n });\n if (typeof selected !== 'string' || !selected) return;\n requested = selected;\n }\n if (!profiles.some(({ name }) => name === requested)) throw new Error(`Unknown profile: ${requested}`);\n if (requested === execution.selection.profile) return;\n await host.changeSelection({ axis: 'profile', profile: requested });\n await publishSelectedIdentity(execution, requested);\n },\n };\n}\nexport const profileIdentityHook: DoomHeadlessHook = {\n event: 'session_start',\n async handle(_event, execution) {\n const profile = execution.selection.profile;\n if (profile !== undefined) await publishSelectedIdentity(execution, profile);\n },\n};\n","import { defineRoutedContribution } from '@agimon-ai/doompi-core/extensionFile';\nimport type { DoomServerPluginContext } from '@agimon-ai/doompi-core/serverFacet';\n\nimport { createProfileServerCommand } from '../_lib/profileServer';\nexport default defineRoutedContribution(\n ({ agent }: DoomServerPluginContext) => (agent ? createProfileServerCommand(agent) : undefined),\n { cardinality: 'optional' },\n);\n","import { defineHook } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { profileIdentityHook } from '../_lib/profileServer';\nexport default defineHook(profileIdentityHook);\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\nimport { readPackageResource } from '@agimon-ai/doompi-core/serverFacet';\n\nexport default defineResource({\n name: 'doompi-author-profile',\n kind: 'skill' as const,\n read: () => readPackageResource(import.meta.url, 'src/prompts/doompi-author-profile/SKILL.md'),\n});\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { readSelectedPersona } from '../_lib/profileServer';\nexport default defineResource({ name: 'doompi/profile-config', kind: 'context' as const, read: readSelectedPersona });\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/serverFacet';\n\nimport commandProfile from '../src/extensions/workspaces/sessions/(backend)/command/profile.server';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/sessionStart.server';\nimport resourceDoompiAuthorProfile from '../src/extensions/workspaces/sessions/(backend)/resource/doompiAuthorProfile.server';\nimport resourceProfileConfig from '../src/extensions/workspaces/sessions/(backend)/resource/profileConfig.server';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\n/* v8 ignore next -- generated normalization branch */\nconst defined = <T>(values: readonly (T | undefined)[]): T[] =>\n values.filter((value): value is T => value !== undefined);\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const facet = defineServerPlugin({\n name: '@agimon-ai/doompi-profile',\n session: (context) => ({\n get commands(): DoomServerSessionPlugin['commands'] { return defined([via({ name: 'profile' }, at(commandProfile, context))]); },\n get hooks(): DoomServerSessionPlugin['hooks'] { return [via({ event: 'session_start' }, at(hookSessionStart, context))]; },\n get resources(): DoomServerSessionPlugin['resources'] { return [at(resourceDoompiAuthorProfile, context), at(resourceProfileConfig, context)]; },\n }),\n});\n\nexport default facet;\n"],"mappings":"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"}
1
+ {"version":3,"file":"server.cjs","names":["resolveProfile","buildPersonaPrompt","DOOM_PROFILE_IDENTITY_ENTRY_TYPE","PROFILE_COMMAND","loadProfiles","profileTitle","profileItems","defineRoutedContribution","defineHook","defineResource","packageResourcePath","readPackageResource","defineResource","defineServerPlugin","commandProfile","hookSessionStart","resourceDoompiAuthorProfile","resourceProfileConfig"],"sources":["../../src/extensions/workspaces/sessions/(backend)/_lib/profileServer.ts","../../src/extensions/workspaces/sessions/(backend)/command/profile.server.ts","../../src/extensions/workspaces/sessions/(backend)/hook/sessionStart.server.ts","../../src/extensions/workspaces/sessions/(backend)/resource/doompiAuthorProfile.server.ts","../../src/extensions/workspaces/sessions/(backend)/resource/profileConfig.server.ts","../../generated/server.ts"],"sourcesContent":["import { buildPersonaPrompt, loadProfiles, resolveProfile } from '@agimon-ai/doompi-config/profiles';\nimport {\n type DoomHeadlessCommand,\n type DoomHeadlessExecutionContext,\n type DoomHeadlessHostService,\n type DoomHeadlessHook,\n} from '@agimon-ai/doompi-core/headless';\nimport { DOOM_PROFILE_IDENTITY_ENTRY_TYPE } from '@agimon-ai/doompi-core/profileIdentity';\n\nimport { PROFILE_COMMAND, profileItems, profileTitle } from '../../../../../services/profileText';\n\nexport async function readSelectedPersona(execution: {\n readonly repoRoot: string;\n readonly selection: { readonly profile?: string };\n}): Promise<string> {\n const name = execution.selection.profile;\n if (!name) return '(no active profile)';\n const profile = resolveProfile(execution.repoRoot, name);\n const prompt = buildPersonaPrompt(profile.personaRoot, profile.persona);\n if (!prompt) throw new Error(`Profile \"${name}\" has no readable persona text`);\n return prompt;\n}\n\nasync function publishSelectedIdentity(execution: DoomHeadlessExecutionContext, profile: string): Promise<void> {\n const identity = resolveProfile(execution.repoRoot, profile).identity;\n await execution.session.appendCustomEntry(DOOM_PROFILE_IDENTITY_ENTRY_TYPE, {\n profile,\n ...(identity?.name === undefined ? {} : { name: identity.name }),\n ...(identity?.icon === undefined ? {} : { icon: identity.icon }),\n });\n}\n\nexport function createProfileServerCommand(host: DoomHeadlessHostService): DoomHeadlessCommand {\n return {\n name: PROFILE_COMMAND,\n description: 'Show or change the active DoomPi profile.',\n async execute(args, execution) {\n const profiles = loadProfiles(execution.repoRoot);\n let requested = args.trim();\n if (!requested) {\n const selected = await execution.client.request({\n kind: 'select',\n title: profileTitle(execution.selection.profile),\n options: profileItems(profiles),\n });\n if (typeof selected !== 'string' || !selected) return;\n requested = selected;\n }\n if (!profiles.some(({ name }) => name === requested)) throw new Error(`Unknown profile: ${requested}`);\n if (requested === execution.selection.profile) return;\n await host.changeSelection({ axis: 'profile', profile: requested });\n await publishSelectedIdentity(execution, requested);\n },\n };\n}\nexport const profileIdentityHook: DoomHeadlessHook = {\n event: 'session_start',\n async handle(_event, execution) {\n const profile = execution.selection.profile;\n if (profile !== undefined) await publishSelectedIdentity(execution, profile);\n },\n};\n","import { defineRoutedContribution } from '@agimon-ai/doompi-core/extensionFile';\nimport type { DoomServerPluginContext } from '@agimon-ai/doompi-core/serverFacet';\n\nimport { createProfileServerCommand } from '../_lib/profileServer';\nexport default defineRoutedContribution(\n ({ agent }: DoomServerPluginContext) => (agent ? createProfileServerCommand(agent) : undefined),\n { cardinality: 'optional' },\n);\n","import { defineHook } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { profileIdentityHook } from '../_lib/profileServer';\nexport default defineHook(profileIdentityHook);\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\nimport { packageResourcePath, readPackageResource } from '@agimon-ai/doompi-core/serverFacet';\n\nexport default defineResource({\n name: 'doompi-author-profile',\n description:\n 'Configure DoomPi profile discovery, personas, environment defaults, and precedence in profiles.yaml. Use when creating or changing personal or repository profiles. Do not use for config.yaml runtime settings, modes.yaml, or domains.yaml.',\n when: { state: { 'minor-mode': 'help' }, attribution: { kind: 'minor' as const, mode: 'help' } },\n kind: 'skill' as const,\n path: packageResourcePath(import.meta.url, 'src/prompts/doompi-author-profile/SKILL.md'),\n read: () => readPackageResource(import.meta.url, 'src/prompts/doompi-author-profile/SKILL.md'),\n});\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { readSelectedPersona } from '../_lib/profileServer';\nexport default defineResource({ name: 'doompi/profile-config', kind: 'context' as const, read: readSelectedPersona });\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/serverFacet';\n\nimport commandProfile from '../src/extensions/workspaces/sessions/(backend)/command/profile.server';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/sessionStart.server';\nimport resourceDoompiAuthorProfile from '../src/extensions/workspaces/sessions/(backend)/resource/doompiAuthorProfile.server';\nimport resourceProfileConfig from '../src/extensions/workspaces/sessions/(backend)/resource/profileConfig.server';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\n/* v8 ignore next -- generated normalization branch */\nconst defined = <T>(values: readonly (T | undefined)[]): T[] =>\n values.filter((value): value is T => value !== undefined);\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T =>\n (value === undefined ? undefined : { ...identity, ...(value as object) }) as T;\n\nexport const facet = defineServerPlugin({\n name: '@agimon-ai/doompi-profile',\n session: (context) => ({\n get commands(): DoomServerSessionPlugin['commands'] { return defined([via({ name: 'profile' }, at(commandProfile, context))]); },\n get hooks(): DoomServerSessionPlugin['hooks'] { return [via({ event: 'session_start' }, at(hookSessionStart, context))]; },\n get resources(): DoomServerSessionPlugin['resources'] { return [at(resourceDoompiAuthorProfile, context), at(resourceProfileConfig, context)]; },\n }),\n});\n\nexport default facet;\n"],"mappings":";;;;;;;;;;AAWA,eAAsB,oBAAoB,WAGtB;CAClB,MAAM,OAAO,UAAU,UAAU;CACjC,IAAI,CAAC,MAAM,OAAO;CAClB,MAAM,WAAA,GAAUA,kCAAAA,eAAAA,CAAe,UAAU,UAAU,IAAI;CACvD,MAAM,UAAA,GAASC,kCAAAA,mBAAAA,CAAmB,QAAQ,aAAa,QAAQ,OAAO;CACtE,IAAI,CAAC,QAAQ,MAAM,IAAI,MAAM,YAAY,KAAK,+BAA+B;CAC7E,OAAO;AACT;AAEA,eAAe,wBAAwB,WAAyC,SAAgC;CAC9G,MAAM,YAAA,GAAWD,kCAAAA,eAAAA,CAAe,UAAU,UAAU,OAAO,CAAC,CAAC;CAC7D,MAAM,UAAU,QAAQ,kBAAkBE,uCAAAA,kCAAkC;EAC1E;EACA,GAAI,UAAU,SAAS,KAAA,IAAY,CAAC,IAAI,EAAE,MAAM,SAAS,KAAK;EAC9D,GAAI,UAAU,SAAS,KAAA,IAAY,CAAC,IAAI,EAAE,MAAM,SAAS,KAAK;CAChE,CAAC;AACH;AAEA,SAAgB,2BAA2B,MAAoD;CAC7F,OAAO;EACL,MAAMC,oBAAAA;EACN,aAAa;EACb,MAAM,QAAQ,MAAM,WAAW;GAC7B,MAAM,YAAA,GAAWC,kCAAAA,aAAAA,CAAa,UAAU,QAAQ;GAChD,IAAI,YAAY,KAAK,KAAK;GAC1B,IAAI,CAAC,WAAW;IACd,MAAM,WAAW,MAAM,UAAU,OAAO,QAAQ;KAC9C,MAAM;KACN,OAAOC,oBAAAA,aAAa,UAAU,UAAU,OAAO;KAC/C,SAASC,oBAAAA,aAAa,QAAQ;IAChC,CAAC;IACD,IAAI,OAAO,aAAa,YAAY,CAAC,UAAU;IAC/C,YAAY;GACd;GACA,IAAI,CAAC,SAAS,MAAM,EAAE,WAAW,SAAS,SAAS,GAAG,MAAM,IAAI,MAAM,oBAAoB,WAAW;GACrG,IAAI,cAAc,UAAU,UAAU,SAAS;GAC/C,MAAM,KAAK,gBAAgB;IAAE,MAAM;IAAW,SAAS;GAAU,CAAC;GAClE,MAAM,wBAAwB,WAAW,SAAS;EACpD;CACF;AACF;AACA,MAAa,sBAAwC;CACnD,OAAO;CACP,MAAM,OAAO,QAAQ,WAAW;EAC9B,MAAM,UAAU,UAAU,UAAU;EACpC,IAAI,YAAY,KAAA,GAAW,MAAM,wBAAwB,WAAW,OAAO;CAC7E;AACF;;;ACzDA,IAAA,0BAAA,GAAeC,qCAAAA,yBAAAA,EACZ,EAAE,YAAsC,QAAQ,2BAA2B,KAAK,IAAI,KAAA,GACrF,EAAE,aAAa,WAAW,CAC5B;;;ACJA,IAAA,+BAAA,GAAeC,qCAAAA,WAAAA,CAAW,mBAAmB;;;ACA7C,IAAA,sCAAA,GAAeC,qCAAAA,eAAAA,CAAe;CAC5B,MAAM;CACN,aACE;CACF,MAAM;EAAE,OAAO,EAAE,cAAc,OAAO;EAAG,aAAa;GAAE,MAAM;GAAkB,MAAM;EAAO;CAAE;CAC/F,MAAM;CACN,OAAA,GAAMC,mCAAAA,oBAAAA,CAAAA,QAAAA,KAAAA,CAAAA,CAAAA,cAAAA,UAAAA,CAAAA,CAAAA,MAAqC,4CAA4C;CACvF,aAAA,GAAYC,mCAAAA,oBAAAA,CAAAA,QAAAA,KAAAA,CAAAA,CAAAA,cAAAA,UAAAA,CAAAA,CAAAA,MAAqC,4CAA4C;AAC/F,CAAC;;;ACRD,IAAA,gCAAA,GAAeC,qCAAAA,eAAAA,CAAe;CAAE,MAAM;CAAyB,MAAM;CAAoB,MAAM;AAAoB,CAAC;;;ACMpH,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;;AAEpE,MAAM,WAAc,WAClB,OAAO,QAAQ,UAAsB,UAAU,KAAA,CAAS;AAC1D,MAAM,OAAU,UAAmC,UAChD,UAAU,KAAA,IAAY,KAAA,IAAY;CAAE,GAAG;CAAU,GAAI;AAAiB;AAEzE,MAAa,SAAA,GAAQC,mCAAAA,mBAAAA,CAAmB;CACtC,MAAM;CACN,UAAU,aAAa;EACrB,IAAI,WAAgD;GAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,UAAU,GAAG,GAAGC,wBAAgB,OAAO,CAAC,CAAC,CAAC;EAAG;EAC/H,IAAI,QAA0C;GAAE,OAAO,CAAC,IAAI,EAAE,OAAO,gBAAgB,GAAG,GAAGC,6BAAkB,OAAO,CAAC,CAAC;EAAG;EACzH,IAAI,YAAkD;GAAE,OAAO,CAAC,GAAGC,oCAA6B,OAAO,GAAG,GAAGC,8BAAuB,OAAO,CAAC;EAAG;CACjJ;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.mts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAgBa,oDAAK"}
1
+ {"version":3,"file":"server.d.mts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAiBa,oDAAK"}
@@ -1,7 +1,7 @@
1
1
  import { s as profileItems, t as PROFILE_COMMAND, u as profileTitle } from "../profileText-BYb57wNe.mjs";
2
2
  import { defineHook, defineResource, defineRoutedContribution } from "@agimon-ai/doompi-core/extensionFile";
3
3
  import { DOOM_PROFILE_IDENTITY_ENTRY_TYPE } from "@agimon-ai/doompi-core/profileIdentity";
4
- import { defineServerPlugin, readPackageResource } from "@agimon-ai/doompi-core/serverFacet";
4
+ import { defineServerPlugin, packageResourcePath, readPackageResource } from "@agimon-ai/doompi-core/serverFacet";
5
5
  import { buildPersonaPrompt, loadProfiles, resolveProfile } from "@agimon-ai/doompi-config/profiles";
6
6
  //#region src/extensions/workspaces/sessions/(backend)/_lib/profileServer.ts
7
7
  async function readSelectedPersona(execution) {
@@ -63,7 +63,16 @@ var sessionStart_server_default = defineHook(profileIdentityHook);
63
63
  //#region src/extensions/workspaces/sessions/(backend)/resource/doompiAuthorProfile.server.ts
64
64
  var doompiAuthorProfile_server_default = defineResource({
65
65
  name: "doompi-author-profile",
66
+ description: "Configure DoomPi profile discovery, personas, environment defaults, and precedence in profiles.yaml. Use when creating or changing personal or repository profiles. Do not use for config.yaml runtime settings, modes.yaml, or domains.yaml.",
67
+ when: {
68
+ state: { "minor-mode": "help" },
69
+ attribution: {
70
+ kind: "minor",
71
+ mode: "help"
72
+ }
73
+ },
66
74
  kind: "skill",
75
+ path: packageResourcePath(import.meta.url, "src/prompts/doompi-author-profile/SKILL.md"),
67
76
  read: () => readPackageResource(import.meta.url, "src/prompts/doompi-author-profile/SKILL.md")
68
77
  });
69
78
  //#endregion
@@ -78,10 +87,10 @@ var profileConfig_server_default = defineResource({
78
87
  const at = (value, context) => typeof value === "function" ? value(context) : value;
79
88
  /* v8 ignore next -- generated normalization branch */
80
89
  const defined = (values) => values.filter((value) => value !== void 0);
81
- const via = (identity, value) => ({
90
+ const via = (identity, value) => value === void 0 ? void 0 : {
82
91
  ...identity,
83
92
  ...value
84
- });
93
+ };
85
94
  const facet = defineServerPlugin({
86
95
  name: "@agimon-ai/doompi-profile",
87
96
  session: (context) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"server.mjs","names":["commandProfile","hookSessionStart","resourceDoompiAuthorProfile","resourceProfileConfig"],"sources":["../../src/extensions/workspaces/sessions/(backend)/_lib/profileServer.ts","../../src/extensions/workspaces/sessions/(backend)/command/profile.server.ts","../../src/extensions/workspaces/sessions/(backend)/hook/sessionStart.server.ts","../../src/extensions/workspaces/sessions/(backend)/resource/doompiAuthorProfile.server.ts","../../src/extensions/workspaces/sessions/(backend)/resource/profileConfig.server.ts","../../generated/server.ts"],"sourcesContent":["import { buildPersonaPrompt, loadProfiles, resolveProfile } from '@agimon-ai/doompi-config/profiles';\nimport {\n type DoomHeadlessCommand,\n type DoomHeadlessExecutionContext,\n type DoomHeadlessHostService,\n type DoomHeadlessHook,\n} from '@agimon-ai/doompi-core/headless';\nimport { DOOM_PROFILE_IDENTITY_ENTRY_TYPE } from '@agimon-ai/doompi-core/profileIdentity';\n\nimport { PROFILE_COMMAND, profileItems, profileTitle } from '../../../../../services/profileText';\n\nexport async function readSelectedPersona(execution: {\n readonly repoRoot: string;\n readonly selection: { readonly profile?: string };\n}): Promise<string> {\n const name = execution.selection.profile;\n if (!name) return '(no active profile)';\n const profile = resolveProfile(execution.repoRoot, name);\n const prompt = buildPersonaPrompt(profile.personaRoot, profile.persona);\n if (!prompt) throw new Error(`Profile \"${name}\" has no readable persona text`);\n return prompt;\n}\n\nasync function publishSelectedIdentity(execution: DoomHeadlessExecutionContext, profile: string): Promise<void> {\n const identity = resolveProfile(execution.repoRoot, profile).identity;\n await execution.session.appendCustomEntry(DOOM_PROFILE_IDENTITY_ENTRY_TYPE, {\n profile,\n ...(identity?.name === undefined ? {} : { name: identity.name }),\n ...(identity?.icon === undefined ? {} : { icon: identity.icon }),\n });\n}\n\nexport function createProfileServerCommand(host: DoomHeadlessHostService): DoomHeadlessCommand {\n return {\n name: PROFILE_COMMAND,\n description: 'Show or change the active DoomPi profile.',\n async execute(args, execution) {\n const profiles = loadProfiles(execution.repoRoot);\n let requested = args.trim();\n if (!requested) {\n const selected = await execution.client.request({\n kind: 'select',\n title: profileTitle(execution.selection.profile),\n options: profileItems(profiles),\n });\n if (typeof selected !== 'string' || !selected) return;\n requested = selected;\n }\n if (!profiles.some(({ name }) => name === requested)) throw new Error(`Unknown profile: ${requested}`);\n if (requested === execution.selection.profile) return;\n await host.changeSelection({ axis: 'profile', profile: requested });\n await publishSelectedIdentity(execution, requested);\n },\n };\n}\nexport const profileIdentityHook: DoomHeadlessHook = {\n event: 'session_start',\n async handle(_event, execution) {\n const profile = execution.selection.profile;\n if (profile !== undefined) await publishSelectedIdentity(execution, profile);\n },\n};\n","import { defineRoutedContribution } from '@agimon-ai/doompi-core/extensionFile';\nimport type { DoomServerPluginContext } from '@agimon-ai/doompi-core/serverFacet';\n\nimport { createProfileServerCommand } from '../_lib/profileServer';\nexport default defineRoutedContribution(\n ({ agent }: DoomServerPluginContext) => (agent ? createProfileServerCommand(agent) : undefined),\n { cardinality: 'optional' },\n);\n","import { defineHook } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { profileIdentityHook } from '../_lib/profileServer';\nexport default defineHook(profileIdentityHook);\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\nimport { readPackageResource } from '@agimon-ai/doompi-core/serverFacet';\n\nexport default defineResource({\n name: 'doompi-author-profile',\n kind: 'skill' as const,\n read: () => readPackageResource(import.meta.url, 'src/prompts/doompi-author-profile/SKILL.md'),\n});\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { readSelectedPersona } from '../_lib/profileServer';\nexport default defineResource({ name: 'doompi/profile-config', kind: 'context' as const, read: readSelectedPersona });\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/serverFacet';\n\nimport commandProfile from '../src/extensions/workspaces/sessions/(backend)/command/profile.server';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/sessionStart.server';\nimport resourceDoompiAuthorProfile from '../src/extensions/workspaces/sessions/(backend)/resource/doompiAuthorProfile.server';\nimport resourceProfileConfig from '../src/extensions/workspaces/sessions/(backend)/resource/profileConfig.server';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\n/* v8 ignore next -- generated normalization branch */\nconst defined = <T>(values: readonly (T | undefined)[]): T[] =>\n values.filter((value): value is T => value !== undefined);\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const facet = defineServerPlugin({\n name: '@agimon-ai/doompi-profile',\n session: (context) => ({\n get commands(): DoomServerSessionPlugin['commands'] { return defined([via({ name: 'profile' }, at(commandProfile, context))]); },\n get hooks(): DoomServerSessionPlugin['hooks'] { return [via({ event: 'session_start' }, at(hookSessionStart, context))]; },\n get resources(): DoomServerSessionPlugin['resources'] { return [at(resourceDoompiAuthorProfile, context), at(resourceProfileConfig, context)]; },\n }),\n});\n\nexport default facet;\n"],"mappings":";;;;;;AAWA,eAAsB,oBAAoB,WAGtB;CAClB,MAAM,OAAO,UAAU,UAAU;CACjC,IAAI,CAAC,MAAM,OAAO;CAClB,MAAM,UAAU,eAAe,UAAU,UAAU,IAAI;CACvD,MAAM,SAAS,mBAAmB,QAAQ,aAAa,QAAQ,OAAO;CACtE,IAAI,CAAC,QAAQ,MAAM,IAAI,MAAM,YAAY,KAAK,+BAA+B;CAC7E,OAAO;AACT;AAEA,eAAe,wBAAwB,WAAyC,SAAgC;CAC9G,MAAM,WAAW,eAAe,UAAU,UAAU,OAAO,CAAC,CAAC;CAC7D,MAAM,UAAU,QAAQ,kBAAkB,kCAAkC;EAC1E;EACA,GAAI,UAAU,SAAS,KAAA,IAAY,CAAC,IAAI,EAAE,MAAM,SAAS,KAAK;EAC9D,GAAI,UAAU,SAAS,KAAA,IAAY,CAAC,IAAI,EAAE,MAAM,SAAS,KAAK;CAChE,CAAC;AACH;AAEA,SAAgB,2BAA2B,MAAoD;CAC7F,OAAO;EACL,MAAM;EACN,aAAa;EACb,MAAM,QAAQ,MAAM,WAAW;GAC7B,MAAM,WAAW,aAAa,UAAU,QAAQ;GAChD,IAAI,YAAY,KAAK,KAAK;GAC1B,IAAI,CAAC,WAAW;IACd,MAAM,WAAW,MAAM,UAAU,OAAO,QAAQ;KAC9C,MAAM;KACN,OAAO,aAAa,UAAU,UAAU,OAAO;KAC/C,SAAS,aAAa,QAAQ;IAChC,CAAC;IACD,IAAI,OAAO,aAAa,YAAY,CAAC,UAAU;IAC/C,YAAY;GACd;GACA,IAAI,CAAC,SAAS,MAAM,EAAE,WAAW,SAAS,SAAS,GAAG,MAAM,IAAI,MAAM,oBAAoB,WAAW;GACrG,IAAI,cAAc,UAAU,UAAU,SAAS;GAC/C,MAAM,KAAK,gBAAgB;IAAE,MAAM;IAAW,SAAS;GAAU,CAAC;GAClE,MAAM,wBAAwB,WAAW,SAAS;EACpD;CACF;AACF;AACA,MAAa,sBAAwC;CACnD,OAAO;CACP,MAAM,OAAO,QAAQ,WAAW;EAC9B,MAAM,UAAU,UAAU,UAAU;EACpC,IAAI,YAAY,KAAA,GAAW,MAAM,wBAAwB,WAAW,OAAO;CAC7E;AACF;;;ACzDA,IAAA,yBAAe,0BACZ,EAAE,YAAsC,QAAQ,2BAA2B,KAAK,IAAI,KAAA,GACrF,EAAE,aAAa,WAAW,CAC5B;;;ACJA,IAAA,8BAAe,WAAW,mBAAmB;;;ACA7C,IAAA,qCAAe,eAAe;CAC5B,MAAM;CACN,MAAM;CACN,YAAY,oBAAoB,YAAY,KAAK,4CAA4C;AAC/F,CAAC;;;ACJD,IAAA,+BAAe,eAAe;CAAE,MAAM;CAAyB,MAAM;CAAoB,MAAM;AAAoB,CAAC;;;ACMpH,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;;AAEpE,MAAM,WAAc,WAClB,OAAO,QAAQ,UAAsB,UAAU,KAAA,CAAS;AAC1D,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,QAAQ,mBAAmB;CACtC,MAAM;CACN,UAAU,aAAa;EACrB,IAAI,WAAgD;GAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,UAAU,GAAG,GAAGA,wBAAgB,OAAO,CAAC,CAAC,CAAC;EAAG;EAC/H,IAAI,QAA0C;GAAE,OAAO,CAAC,IAAI,EAAE,OAAO,gBAAgB,GAAG,GAAGC,6BAAkB,OAAO,CAAC,CAAC;EAAG;EACzH,IAAI,YAAkD;GAAE,OAAO,CAAC,GAAGC,oCAA6B,OAAO,GAAG,GAAGC,8BAAuB,OAAO,CAAC;EAAG;CACjJ;AACF,CAAC"}
1
+ {"version":3,"file":"server.mjs","names":["commandProfile","hookSessionStart","resourceDoompiAuthorProfile","resourceProfileConfig"],"sources":["../../src/extensions/workspaces/sessions/(backend)/_lib/profileServer.ts","../../src/extensions/workspaces/sessions/(backend)/command/profile.server.ts","../../src/extensions/workspaces/sessions/(backend)/hook/sessionStart.server.ts","../../src/extensions/workspaces/sessions/(backend)/resource/doompiAuthorProfile.server.ts","../../src/extensions/workspaces/sessions/(backend)/resource/profileConfig.server.ts","../../generated/server.ts"],"sourcesContent":["import { buildPersonaPrompt, loadProfiles, resolveProfile } from '@agimon-ai/doompi-config/profiles';\nimport {\n type DoomHeadlessCommand,\n type DoomHeadlessExecutionContext,\n type DoomHeadlessHostService,\n type DoomHeadlessHook,\n} from '@agimon-ai/doompi-core/headless';\nimport { DOOM_PROFILE_IDENTITY_ENTRY_TYPE } from '@agimon-ai/doompi-core/profileIdentity';\n\nimport { PROFILE_COMMAND, profileItems, profileTitle } from '../../../../../services/profileText';\n\nexport async function readSelectedPersona(execution: {\n readonly repoRoot: string;\n readonly selection: { readonly profile?: string };\n}): Promise<string> {\n const name = execution.selection.profile;\n if (!name) return '(no active profile)';\n const profile = resolveProfile(execution.repoRoot, name);\n const prompt = buildPersonaPrompt(profile.personaRoot, profile.persona);\n if (!prompt) throw new Error(`Profile \"${name}\" has no readable persona text`);\n return prompt;\n}\n\nasync function publishSelectedIdentity(execution: DoomHeadlessExecutionContext, profile: string): Promise<void> {\n const identity = resolveProfile(execution.repoRoot, profile).identity;\n await execution.session.appendCustomEntry(DOOM_PROFILE_IDENTITY_ENTRY_TYPE, {\n profile,\n ...(identity?.name === undefined ? {} : { name: identity.name }),\n ...(identity?.icon === undefined ? {} : { icon: identity.icon }),\n });\n}\n\nexport function createProfileServerCommand(host: DoomHeadlessHostService): DoomHeadlessCommand {\n return {\n name: PROFILE_COMMAND,\n description: 'Show or change the active DoomPi profile.',\n async execute(args, execution) {\n const profiles = loadProfiles(execution.repoRoot);\n let requested = args.trim();\n if (!requested) {\n const selected = await execution.client.request({\n kind: 'select',\n title: profileTitle(execution.selection.profile),\n options: profileItems(profiles),\n });\n if (typeof selected !== 'string' || !selected) return;\n requested = selected;\n }\n if (!profiles.some(({ name }) => name === requested)) throw new Error(`Unknown profile: ${requested}`);\n if (requested === execution.selection.profile) return;\n await host.changeSelection({ axis: 'profile', profile: requested });\n await publishSelectedIdentity(execution, requested);\n },\n };\n}\nexport const profileIdentityHook: DoomHeadlessHook = {\n event: 'session_start',\n async handle(_event, execution) {\n const profile = execution.selection.profile;\n if (profile !== undefined) await publishSelectedIdentity(execution, profile);\n },\n};\n","import { defineRoutedContribution } from '@agimon-ai/doompi-core/extensionFile';\nimport type { DoomServerPluginContext } from '@agimon-ai/doompi-core/serverFacet';\n\nimport { createProfileServerCommand } from '../_lib/profileServer';\nexport default defineRoutedContribution(\n ({ agent }: DoomServerPluginContext) => (agent ? createProfileServerCommand(agent) : undefined),\n { cardinality: 'optional' },\n);\n","import { defineHook } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { profileIdentityHook } from '../_lib/profileServer';\nexport default defineHook(profileIdentityHook);\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\nimport { packageResourcePath, readPackageResource } from '@agimon-ai/doompi-core/serverFacet';\n\nexport default defineResource({\n name: 'doompi-author-profile',\n description:\n 'Configure DoomPi profile discovery, personas, environment defaults, and precedence in profiles.yaml. Use when creating or changing personal or repository profiles. Do not use for config.yaml runtime settings, modes.yaml, or domains.yaml.',\n when: { state: { 'minor-mode': 'help' }, attribution: { kind: 'minor' as const, mode: 'help' } },\n kind: 'skill' as const,\n path: packageResourcePath(import.meta.url, 'src/prompts/doompi-author-profile/SKILL.md'),\n read: () => readPackageResource(import.meta.url, 'src/prompts/doompi-author-profile/SKILL.md'),\n});\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { readSelectedPersona } from '../_lib/profileServer';\nexport default defineResource({ name: 'doompi/profile-config', kind: 'context' as const, read: readSelectedPersona });\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/serverFacet';\n\nimport commandProfile from '../src/extensions/workspaces/sessions/(backend)/command/profile.server';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/sessionStart.server';\nimport resourceDoompiAuthorProfile from '../src/extensions/workspaces/sessions/(backend)/resource/doompiAuthorProfile.server';\nimport resourceProfileConfig from '../src/extensions/workspaces/sessions/(backend)/resource/profileConfig.server';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\n/* v8 ignore next -- generated normalization branch */\nconst defined = <T>(values: readonly (T | undefined)[]): T[] =>\n values.filter((value): value is T => value !== undefined);\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T =>\n (value === undefined ? undefined : { ...identity, ...(value as object) }) as T;\n\nexport const facet = defineServerPlugin({\n name: '@agimon-ai/doompi-profile',\n session: (context) => ({\n get commands(): DoomServerSessionPlugin['commands'] { return defined([via({ name: 'profile' }, at(commandProfile, context))]); },\n get hooks(): DoomServerSessionPlugin['hooks'] { return [via({ event: 'session_start' }, at(hookSessionStart, context))]; },\n get resources(): DoomServerSessionPlugin['resources'] { return [at(resourceDoompiAuthorProfile, context), at(resourceProfileConfig, context)]; },\n }),\n});\n\nexport default facet;\n"],"mappings":"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"}
@@ -9,10 +9,10 @@ var profile_web_default = defineSelectionAxis({
9
9
  });
10
10
  //#endregion
11
11
  //#region generated/web.ts
12
- const via = (identity, value) => ({
12
+ const via = (identity, value) => value === void 0 ? void 0 : {
13
13
  ...identity,
14
14
  ...value
15
- });
15
+ };
16
16
  const webPlugin = defineWebPlugin({
17
17
  id: "profile",
18
18
  session: { get selectionAxes() {
@@ -1 +1 @@
1
- {"version":3,"file":"web.mjs","names":["selectionAxisProfile"],"sources":["../../src/extensions/workspaces/sessions/(frontend)/selection-axis/profile.web.ts","../../generated/web.ts"],"sourcesContent":["import { defineSelectionAxis } from '@agimon-ai/doompi-core/web';\nexport default defineSelectionAxis({\n name: 'profile',\n command: 'profile',\n statusKey: 'doom-profile',\n emptyLabel: 'no profile',\n order: 10,\n});\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineWebPlugin, type WebPluginContributions } from '@agimon-ai/doompi-core/web';\n\nimport selectionAxisProfile from '../src/extensions/workspaces/sessions/(frontend)/selection-axis/profile.web';\n\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const webPlugin = defineWebPlugin({\n id: 'profile',\n session: {\n get selectionAxes(): WebPluginContributions['selectionAxes'] { return [via({ name: 'profile' }, selectionAxisProfile)]; },\n },\n});\n"],"mappings":";;AACA,IAAA,sBAAe,oBAAoB;CACjC,MAAM;CACN,SAAS;CACT,WAAW;CACX,YAAY;CACZ,OAAO;AACT,CAAC;;;ACFD,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,YAAY,gBAAgB;CACvC,IAAI;CACJ,SAAS,EACP,IAAI,gBAAyD;EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,UAAU,GAAGA,mBAAoB,CAAC;CAAG,EAC1H;AACF,CAAC"}
1
+ {"version":3,"file":"web.mjs","names":["selectionAxisProfile"],"sources":["../../src/extensions/workspaces/sessions/(frontend)/selection-axis/profile.web.ts","../../generated/web.ts"],"sourcesContent":["import { defineSelectionAxis } from '@agimon-ai/doompi-core/web';\nexport default defineSelectionAxis({\n name: 'profile',\n command: 'profile',\n statusKey: 'doom-profile',\n emptyLabel: 'no profile',\n order: 10,\n});\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineWebPlugin, type WebPluginContributions } from '@agimon-ai/doompi-core/web';\n\nimport selectionAxisProfile from '../src/extensions/workspaces/sessions/(frontend)/selection-axis/profile.web';\n\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T =>\n (value === undefined ? undefined : { ...identity, ...(value as object) }) as T;\n\nexport const webPlugin = defineWebPlugin({\n id: 'profile',\n session: {\n get selectionAxes(): WebPluginContributions['selectionAxes'] { return [via({ name: 'profile' }, selectionAxisProfile)]; },\n },\n});\n"],"mappings":";;AACA,IAAA,sBAAe,oBAAoB;CACjC,MAAM;CACN,SAAS;CACT,WAAW;CACX,YAAY;CACZ,OAAO;AACT,CAAC;;;ACFD,MAAM,OAAU,UAAmC,UAChD,UAAU,KAAA,IAAY,KAAA,IAAY;CAAE,GAAG;CAAU,GAAI;AAAiB;AAEzE,MAAa,YAAY,gBAAgB;CACvC,IAAI;CACJ,SAAS,EACP,IAAI,gBAAyD;EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,UAAU,GAAGA,mBAAoB,CAAC;CAAG,EAC1H;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agimon-ai/doompi-profile",
3
- "version": "0.0.1-alpha.61",
3
+ "version": "0.0.1-alpha.63",
4
4
  "description": "Persona and environment profile switching for DoomPi sessions.",
5
5
  "keywords": [
6
6
  "agent-persona",
@@ -73,19 +73,19 @@
73
73
  "access": "public"
74
74
  },
75
75
  "dependencies": {
76
- "@agimon-ai/doompi-config": "0.0.1-alpha.82",
77
- "@agimon-ai/doompi-core": "0.0.1-alpha.83",
78
- "@agimon-ai/doompi-minor-mode": "0.0.1-alpha.83",
79
- "@agimon-ai/doompi-telemetry": "0.0.1-alpha.79",
80
- "@agimon-ai/doompi-ui": "0.0.1-alpha.83",
76
+ "@agimon-ai/doompi-config": "0.0.1-alpha.84",
77
+ "@agimon-ai/doompi-core": "0.0.1-alpha.85",
78
+ "@agimon-ai/doompi-minor-mode": "0.0.1-alpha.85",
79
+ "@agimon-ai/doompi-telemetry": "0.0.1-alpha.80",
80
+ "@agimon-ai/doompi-ui": "0.0.1-alpha.85",
81
81
  "@deepseek-ai/cordis": "4.0.2",
82
82
  "typebox": "1.3.34"
83
83
  },
84
84
  "devDependencies": {
85
- "@agimon-ai/doompi-build": "0.0.1-alpha.11",
86
- "@agimon-ai/doompi-core": "0.0.1-alpha.83",
87
- "@agimon-ai/doompi-voice": "0.0.1-alpha.84",
88
- "@agimon-ai/vibe-lint-plugin-doom-extension": "0.0.1-alpha.77",
85
+ "@agimon-ai/doompi-build": "0.0.1-alpha.12",
86
+ "@agimon-ai/doompi-core": "0.0.1-alpha.85",
87
+ "@agimon-ai/doompi-voice": "0.0.1-alpha.86",
88
+ "@agimon-ai/vibe-lint-plugin-doom-extension": "0.0.1-alpha.78",
89
89
  "@deepseek-ai/cordis": "4.0.2",
90
90
  "@earendil-works/pi-coding-agent": "0.87.1",
91
91
  "@earendil-works/pi-tui": "0.87.1",
@@ -96,7 +96,7 @@
96
96
  "vitest": "5.0.1"
97
97
  },
98
98
  "peerDependencies": {
99
- "@agimon-ai/doompi-core": "0.0.1-alpha.83",
99
+ "@agimon-ai/doompi-core": "0.0.1-alpha.85",
100
100
  "@earendil-works/pi-coding-agent": "0.87.1",
101
101
  "@earendil-works/pi-tui": "0.87.1"
102
102
  },