mrvn-cli 0.2.1 → 0.2.2

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/marvin.js CHANGED
@@ -13981,7 +13981,7 @@ function createMeetingTools(store) {
13981
13981
  owner: external_exports.string().optional().describe("Meeting organizer"),
13982
13982
  tags: external_exports.array(external_exports.string()).optional().describe("Tags for categorization"),
13983
13983
  attendees: external_exports.array(external_exports.string()).optional().describe("List of attendees"),
13984
- date: external_exports.string().optional().describe("Meeting date (ISO format)")
13984
+ date: external_exports.string().describe("Date the meeting took place (ISO format, e.g. '2025-01-15'). Extract from the meeting content. If not found, ask the user before calling this tool.")
13985
13985
  },
13986
13986
  async (args) => {
13987
13987
  const frontmatter = {
@@ -13991,7 +13991,7 @@ function createMeetingTools(store) {
13991
13991
  if (args.owner) frontmatter.owner = args.owner;
13992
13992
  if (args.tags) frontmatter.tags = args.tags;
13993
13993
  if (args.attendees) frontmatter.attendees = args.attendees;
13994
- if (args.date) frontmatter.date = args.date;
13994
+ frontmatter.date = args.date;
13995
13995
  const doc = store.create(
13996
13996
  "meeting",
13997
13997
  frontmatter,
@@ -14691,7 +14691,7 @@ var genericAgilePlugin = {
14691
14691
 
14692
14692
  **Meeting Tools:**
14693
14693
  - **list_meetings** / **get_meeting**: Browse and read meeting records.
14694
- - **create_meeting**: Record new meetings with attendees, date, and agenda.
14694
+ - **create_meeting**: Record new meetings with attendees, date, and agenda. The meeting date is required \u2014 extract it from the meeting content or ask the user if not found.
14695
14695
  - **update_meeting**: Update meeting status or notes after completion.
14696
14696
  - **analyze_meeting**: Analyze a meeting to review its outcomes and extract artifacts.
14697
14697
 
@@ -14712,7 +14712,7 @@ var genericAgilePlugin = {
14712
14712
 
14713
14713
  **Meeting Tools:**
14714
14714
  - **list_meetings** / **get_meeting**: Browse and read meeting records.
14715
- - **create_meeting**: Record new meetings with attendees, date, and agenda.
14715
+ - **create_meeting**: Record new meetings with attendees, date, and agenda. The meeting date is required \u2014 extract it from the meeting content or ask the user if not found.
14716
14716
  - **update_meeting**: Update meeting status or notes after completion.
14717
14717
  - **analyze_meeting**: Analyze a meeting to review its outcomes and extract artifacts.
14718
14718
 
@@ -14740,7 +14740,7 @@ var genericAgilePlugin = {
14740
14740
 
14741
14741
  **Meeting Tools:**
14742
14742
  - **list_meetings** / **get_meeting**: Browse and read meeting records.
14743
- - **create_meeting**: Record new meetings with attendees, date, and agenda.
14743
+ - **create_meeting**: Record new meetings with attendees, date, and agenda. The meeting date is required \u2014 extract it from the meeting content or ask the user if not found.
14744
14744
  - **update_meeting**: Update meeting status or notes after completion.
14745
14745
  - **analyze_meeting**: Analyze a completed meeting to extract decisions, actions, and questions. Use this to ensure meeting outcomes are properly tracked as governance artifacts.
14746
14746
 
@@ -14758,7 +14758,7 @@ var genericAgilePlugin = {
14758
14758
  **Key workflow rule:** Epics must link to approved features \u2014 the system enforces this. The Product Owner defines and approves features, the Tech Lead breaks them into epics, and the Delivery Manager tracks dates and progress.
14759
14759
 
14760
14760
  - **list_meetings** / **get_meeting**: Browse and read meeting records.
14761
- - **create_meeting**: Record meetings with attendees, date, and agenda.
14761
+ - **create_meeting**: Record meetings with attendees, date, and agenda. The meeting date is required \u2014 extract it from the meeting content or ask the user if not found.
14762
14762
  - **update_meeting**: Update meeting status or notes.
14763
14763
  - **analyze_meeting**: Analyze a meeting to extract decisions, actions, and questions as governance artifacts.`
14764
14764
  }
@@ -16103,7 +16103,7 @@ var DocumentStore = class {
16103
16103
  updated: now,
16104
16104
  ...cleaned
16105
16105
  };
16106
- const fileName = type === "meeting" ? `${now.slice(0, 10)}-${slugify2(fullFrontmatter.title)}.md` : `${id}.md`;
16106
+ const fileName = type === "meeting" ? `${cleaned.date?.slice(0, 10) ?? now.slice(0, 10)}-${slugify2(fullFrontmatter.title)}.md` : `${id}.md`;
16107
16107
  const filePath = path5.join(dir, fileName);
16108
16108
  const doc = {
16109
16109
  frontmatter: fullFrontmatter,
@@ -16127,7 +16127,7 @@ var DocumentStore = class {
16127
16127
  }
16128
16128
  const dir = path5.join(this.docsDir, dirName);
16129
16129
  fs5.mkdirSync(dir, { recursive: true });
16130
- const fileName = type === "meeting" ? `${frontmatter.created.slice(0, 10)}-${slugify2(frontmatter.title)}.md` : `${frontmatter.id}.md`;
16130
+ const fileName = type === "meeting" ? `${frontmatter.date?.slice(0, 10) ?? frontmatter.created.slice(0, 10)}-${slugify2(frontmatter.title)}.md` : `${frontmatter.id}.md`;
16131
16131
  const filePath = path5.join(dir, fileName);
16132
16132
  const doc = { frontmatter, content, filePath };
16133
16133
  fs5.writeFileSync(filePath, serializeDocument(doc), "utf-8");
@@ -19686,7 +19686,7 @@ function createProgram() {
19686
19686
  const program2 = new Command();
19687
19687
  program2.name("marvin").description(
19688
19688
  "AI-powered product development assistant with Product Owner, Delivery Manager, and Technical Lead personas"
19689
- ).version("0.2.0");
19689
+ ).version("0.2.1");
19690
19690
  program2.command("init").description("Initialize a new Marvin project in the current directory").action(async () => {
19691
19691
  await initCommand();
19692
19692
  });